WO2023007680A1 - 準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム - Google Patents

準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム Download PDF

Info

Publication number
WO2023007680A1
WO2023007680A1 PCT/JP2021/028209 JP2021028209W WO2023007680A1 WO 2023007680 A1 WO2023007680 A1 WO 2023007680A1 JP 2021028209 W JP2021028209 W JP 2021028209W WO 2023007680 A1 WO2023007680 A1 WO 2023007680A1
Authority
WO
WIPO (PCT)
Prior art keywords
homomorphic
cyclic
data
ciphertext
periodic
Prior art date
Application number
PCT/JP2021/028209
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/JP2021/028209 priority Critical patent/WO2023007680A1/ja
Priority to JP2023537870A priority patent/JPWO2023007680A1/ja
Publication of WO2023007680A1 publication Critical patent/WO2023007680A1/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

Definitions

  • the present invention relates to a homomorphic cyclic computing system, a homomorphic cyclic computing device, a homomorphic cyclic computing method, and a homomorphic cyclic computing program.
  • Homomorphic encryption is a binary operation m 1 ⁇ m 2 encryption It means that the sentence Enc(m 1 ⁇ m 2 ) can be calculated without decrypting the plaintexts m 1 and m 2 .
  • " ⁇ " is a binary operation, such as addition "+” or multiplication "x”.
  • Homomorphic encryption with respect to addition "+” is called additive homomorphic encryption.
  • Homomorphic encryption that is also homomorphic with respect to multiplication "x” is called fully homomorphic encryption.
  • Fully homomorphic encryption has the best properties because it is also homomorphic with respect to addition and multiplication.
  • the fully homomorphic encryption requires a large amount of calculation and has a difficulty in practical use. Therefore, a homomorphic encryption with an intermediate property between additive homomorphic encryption and fully homomorphic encryption has also been developed.
  • an encryption method called Somewhat homomorphic encryption is a homomorphic encryption that has homomorphism regarding a limited number of additions and multiplications (see, for example, Non-Patent Document 1).
  • a cyclic operation is an operation that moves storage locations while maintaining the order of data in a periodic array of data.
  • An operation that moves storage locations while maintaining the order of data is generally called a shift, and a cyclic operation is an operation that shifts a cyclic array.
  • an object of the present invention is to provide a homomorphic cyclic computing system, a homomorphic cyclic computing device, and a homomorphic cyclic computing system for shifting data storage locations without decrypting a periodic array of encrypted data.
  • An object of the present invention is to provide an arithmetic method and a homomorphic cyclic arithmetic program.
  • a homomorphic cyclic operation system for performing homomorphic cyclic operations on a periodic array of data using homomorphic encryption in which a homomorphic operation is defined for at least one multiplication, an encryption device that stores a periodic array of the data in coefficients of a polynomial of an unknown element and encrypts it to generate a ciphertext of the periodic data; and a homomorphic cyclic arithmetic unit that operates to shift the periodic arrangement of the data in the ciphertext of the periodic data.
  • a homomorphic cyclic operation device for performing a homomorphic cyclic operation on a cyclic array of data using a homomorphic encryption in which a homomorphic operation is defined for at least one multiplication,
  • the data in the ciphertext of the periodic data is generated by storing the periodic array of the data in the coefficients of the polynomial of the unknown element and encrypting it, and multiplying the shift amount of the unknown element to the encrypted text.
  • a homomorphic cyclic arithmetic unit is provided for shifting a cyclic array of .
  • a homomorphic cyclic operation method for performing a homomorphic cyclic operation on a periodic array of data using a homomorphic encryption in which a homomorphic operation is defined for at least one multiplication, generating a ciphertext of periodic data by storing and encrypting the periodic array of the data in the coefficients of a polynomial of an unknown element; and shifting the periodic arrangement of the data in the ciphertext of the periodic data by:
  • a fourth aspect of the present invention is a program for causing a computer to perform a homomorphic cyclic operation on a periodic array of data using a homomorphic encryption in which a homomorphic operation is defined for at least one multiplication. Then, the ciphertext generated by storing the periodic array of the data in the coefficients of the polynomial of the indefinite element and encrypting it is multiplied by the shift amount of the indefinite element, so that the ciphertext of the periodic data is A program is provided for shifting the periodic array of said data.
  • This program can be recorded in a computer-readable storage medium.
  • the storage medium can be non-transient such as semiconductor memory, hard disk, magnetic recording medium, optical recording medium, and the like.
  • the invention can also be embodied as a computer program product.
  • a homomorphic cyclic operation system a homomorphic cyclic operation device, a homomorphic cyclic operation method, and a data storage location are shifted without decrypting a cyclic array of encrypted data.
  • a homomorphic cyclic arithmetic program can be provided.
  • FIG. 1 is a block diagram showing a schematic configuration example of a homomorphic cyclic computing system according to the first embodiment.
  • FIG. 2 is a block diagram showing a schematic configuration example of a homomorphic cyclic arithmetic unit according to the first embodiment.
  • FIG. 3 is a system flowchart of the system in the first embodiment.
  • FIG. 4 is a diagram illustrating a hardware configuration example of a homomorphic cyclic arithmetic unit.
  • FIG. 5 is a diagram showing the concept of secure calculation of the degree of similarity of heterocyclic compounds.
  • FIG. 1 A homomorphic cyclic computing system according to the first embodiment will be described below with reference to FIGS. 1 and 2.
  • FIG. The first embodiment is an embodiment that describes only the basic concept of the invention.
  • FIG. 1 is a block diagram showing a schematic configuration example of a homomorphic cyclic computing system according to the first embodiment.
  • a homomorphic cyclic arithmetic system 100 includes an encryption device 110 and a homomorphic cyclic arithmetic device 120 .
  • the encryption device 110 and the homomorphic cyclic arithmetic device 120 are information processing devices (computers) whose hardware configuration will be exemplified later.
  • the encryption device 110 and the homomorphic cyclic arithmetic device 120 may be connected by wired communication, or may be connected by wireless communication.
  • the encryption device 110 can be a general-purpose personal computer or a mobile terminal such as a smart phone.
  • a homomorphic cyclic arithmetic system 100 according to the first embodiment shown in FIG. It is intended for cyclic operations on arrays that are simple.
  • the encryption device 110 generates a ciphertext of the periodic data by storing the periodic array of data in the coefficients of the polynomial of the indefinite element and encrypting it, and the homomorphic cyclic arithmetic unit 120 generates the ciphertext of the periodic data. Shift the periodic array of data in the ciphertext of the periodic data by applying an indefinite shift amount to the power of .
  • the homomorphic cyclic arithmetic unit 120 shifts the periodic array of data without decoding it. Therefore, the output of homomorphic cyclic arithmetic unit 120 is also a ciphertext. There are various ways of using the obtained ciphertext, such as embodiments to be exemplified later. Then, the secret key and the public key of homomorphic encryption can be separately managed in different devices, which is preferable because security is improved.
  • FIG. 2 is a block diagram showing a schematic configuration example of a homomorphic cyclic arithmetic unit according to the first embodiment.
  • the homomorphic cyclic arithmetic unit 120 includes a storage unit 121 , a receiving unit 122 and an arithmetic unit 123 .
  • the storage unit 121 stores homomorphic cyclic computation and various information used in association with the homomorphic cyclic computation.
  • the receiving unit 122 receives the ciphertext of the periodic data from the encryption device 110 .
  • the calculation unit 123 uses the homomorphic calculation to perform the cyclic calculation without decrypting the ciphertext of the periodic data.
  • FIG. 3 is a system flowchart of the system in the first embodiment.
  • the system flowchart shown in FIG. 3 is a homomorphic cyclic operation of a periodic array of data using a homomorphic encryption capable of encrypting an array of data and in which the homomorphic operation is defined in terms of at least one multiplication. It shows the procedure of the cyclic arithmetic method.
  • step S1 the encryption device 110 stores the periodic array of data in the coefficients of the polynomial of the indefinite element and encrypts it to generate the ciphertext of the periodic data.
  • the generated ciphertext of the periodic data is transmitted from the encryption device 110 to the homomorphic cyclic arithmetic device 120 .
  • step S2 the homomorphic cyclic arithmetic unit 120 shifts the periodic array of data in the ciphertext of the cyclic data by multiplying the ciphertext of the cyclic data received from the encryption device 110 by the shift amount of the indefinite element. do.
  • step S2 there are various ways of using the ciphertext obtained in step S2, such as the embodiments exemplified later.
  • FIG. 4 is a diagram illustrating a hardware configuration example of a homomorphic cyclic arithmetic unit. That is, the hardware configuration example shown in FIG. 4 is a hardware configuration example of the homomorphic cyclic arithmetic unit 120 .
  • An information processing device that employs the hardware configuration shown in FIG. 4 executes the above-described homomorphic cyclic arithmetic method as a program, thereby realizing each function of the homomorphic cyclic arithmetic device 120.
  • the hardware configuration example shown in FIG. 4 is an example of a hardware configuration for realizing each function of the homomorphic cyclic arithmetic unit 120, and is not intended to limit the hardware configuration of the homomorphic cyclic arithmetic unit 120.
  • Homomorphic cyclic arithmetic unit 120 can include hardware not shown in FIG.
  • the hardware configuration 10 that can be adopted by the homomorphic cyclic arithmetic unit 120 includes, for example, a CPU (Central Processing Unit) 11, a main memory device 12, an auxiliary memory device 13, which are interconnected by an internal bus. , and an IF (Interface) unit 14 .
  • a CPU Central Processing Unit
  • main memory device 12 main memory device
  • auxiliary memory device 13 which are interconnected by an internal bus.
  • IF Interface
  • the CPU 11 executes each command included in the homomorphic cyclic arithmetic program executed by the homomorphic cyclic arithmetic device 120 .
  • the main storage device 12 is, for example, a RAM (Random Access Memory), and temporarily stores various programs such as a homomorphic cyclic arithmetic program executed by the homomorphic cyclic arithmetic device 120 for the CPU 11 to process.
  • the auxiliary storage device 13 is, for example, a HDD (Hard Disk Drive), and can store various programs such as a homomorphic cyclic arithmetic program executed by the homomorphic cyclic arithmetic device 120 in the medium to long term. .
  • Various programs such as a homomorphic cyclic arithmetic program can be provided as a program product recorded on a non-transitory computer-readable storage medium.
  • the auxiliary storage device 13 can be used for medium- to long-term storage of various programs such as a homomorphic cyclic arithmetic program recorded on a non-temporary computer-readable recording medium.
  • the IF unit 14 provides an interface for input/output between the homomorphic cyclic arithmetic unit 120 and the encryption unit 110, for example.
  • An information processing device that employs the hardware configuration 10 as described above implements each function of the homomorphic cyclic arithmetic device 120 by executing the above-described homomorphic cyclic arithmetic method as a program.
  • the homomorphic cyclic arithmetic system in the first embodiment can contribute to shifting the data storage location without decrypting the periodic array of encrypted data.
  • the homomorphic cyclic computing system in the first embodiment can be implemented as a homomorphic cyclic computing method, and the homomorphic cyclic computing method in the first embodiment includes the information processing apparatus ( It can also be implemented as a program executed by a computer).
  • a homomorphic cyclic computing system will be described below.
  • the second embodiment describes a method of performing a homomorphic cyclic operation on a periodic array of data while exemplifying the homomorphic encryption used in the first embodiment.
  • Homomorphic encryption described below, can encrypt arrays of data, where homomorphic operations are defined in terms of at least one multiplication.
  • one period of the periodic array of data can be regarded as a vector.
  • t is the space size of plaintext
  • d is the space size of ciphertext
  • [ ] d is a reduction to the interval [-d/2, d/2), that is, a reduction such that the remainder of division by d is in the interval [-d/2, d/2).
  • r n -1 mod d.
  • f(x) mod (t, x n +1) represents f(x) mod t mod (x n +1).
  • it is the polynomial remainder obtained by dividing each coefficient of f′(x) by t. .
  • Enc(x s ) obtained by encrypting the shift amount s of the indefinite element x, that is, x s , and the ciphertext Enc(m(x)) of the periodic data m(x) are equivalent to By isomorphic multiplication, it is possible to shift the periodic array of data in the ciphertext Enc(m(x)) of the periodic data m(x). This is because the following relational expression holds.
  • the homomorphic cyclic operation is multiplied by -1 during the cyclic operation, there is no practical problem as will be understood from the embodiments described later. Further, the homomorphic cyclic operation can be combined with the homomorphic cyclic operation system, the homomorphic cyclic operation device, the homomorphic cyclic operation method, and the homomorphic cyclic operation program of the first embodiment.
  • a homomorphic cyclic arithmetic system, a homomorphic cyclic arithmetic device, a homomorphic cyclic arithmetic method, and a homomorphic cyclic arithmetic program are realized.
  • the homomorphic cyclic operation in the third embodiment can use homomorphic operations other than the encryption and the homomorphic cyclic operation in the second embodiment. Only the homomorphic cyclic operations in the embodiment of are described.
  • the ciphertext Enc(m(x)) of the periodic data m(x) is obtained by substituting the base number r for the indefinite element x to the power of the shift amount s, that is, the scalar multiplication by r s . By doing so, the periodic arrangement of the data in the ciphertext Enc(m(x)) of the periodic data m(x) is shifted.
  • a homomorphic cyclic operation with a cyclic amount s can be calculated as follows.
  • u′(r)) u(r)*r s in the transformation of the following formula.
  • the homomorphic cyclic operation in the second embodiment calculates HomMul(Enc(m(x)), Enc(x s )), Enc(x s ) needs to be stored or calculated each time.
  • r i used in the homomorphic cyclic computation in the third embodiment is also used in encryption, it is often calculated in advance and the calculation result is stored in the memory. Therefore, in that case, the already calculated r i can be reused without incurring additional storage and computational costs.
  • the homomorphic cyclic computation in the second embodiment causes an increase in noise that causes decoding errors when homomorphic multiplication HomMul is used.
  • the homomorphic cyclic operation in the third embodiment has an additional storage or computational cost and an increased decryption error probability or a cryptographic scheme to accommodate it, compared to the homomorphic cyclic operation in the second embodiment.
  • the calculation cost of the entire encryption method is small by increasing the parameter of .
  • the third embodiment By combining the homomorphic cyclic operation in the third embodiment with the homomorphic cyclic operation system, the homomorphic cyclic operation device, the homomorphic cyclic operation method, and the homomorphic cyclic operation program of the first embodiment, the third The homomorphic cyclic arithmetic system, the homomorphic cyclic arithmetic device, the homomorphic cyclic arithmetic method, and the homomorphic cyclic arithmetic program of the embodiments can be realized.
  • the homomorphic cyclic operation described above is a negative cyclic operation that is multiplied by -1 when cyclic.
  • the fourth embodiment it will be explained using similarity calculation as an example that even a negative cyclic operation that is multiplied by -1 when cyclic can be put into practice by devising it.
  • Appropriate similarity even in a negative cyclic operation that is multiplied by -1 when cyclic by making the cyclic array of data cyclically redundant, storing it in the coefficients of the polynomial of the indefinite element, and encrypting it can be calculated.
  • FIG. 5 is a diagram showing the concept of secure calculation of the degree of similarity of heterocyclic compounds. Assume that there is a database in which the structure of heterocyclic compound A is encrypted and registered from a plurality of pharmaceutical companies, as shown in FIG. Then, the user wants to know the degree of similarity between the heterocyclic compound B, which he or she has discovered, etc., and the previously registered heterocyclic compound.
  • the degree of similarity of heterocyclic compounds is defined by the correspondence of atoms contained in the heterocyclic compounds, for example, as shown in the score table below.
  • the similarity can be calculated using the inner product calculation from the score table.
  • the rows of the score table are selected according to the atoms contained in the heterocyclic compound A, and array A is created by connecting these selected rows of the score table in a row.
  • array A is created by connecting these selected rows of the score table in a row.
  • an array B is created in which 1 is assigned to applicable positions and 0 is assigned to non-applicable positions according to the atoms contained in heterocyclic compound B.
  • Similarity can be calculated by performing an inner product operation on these two arrays A and B as vectors.
  • the inner product operation can use the homomorphic operation, the similarity calculation can be performed while the structures of the heterocyclic compound A and the heterocyclic compound B are kept secret.
  • ⁇ A, B> +5 + 0 + 0 + ... + 0 + 0 + 0
  • the similarity value changes depending on where the similarity calculation is performed with the starting point.
  • the heterocyclic compound A and the heterocyclic compound B are the same heterocyclic compound, but the starting point of the cyclic structure is different, so the degree of similarity is calculated to be low. If there is no homomorphic cyclic operation, it is necessary to encrypt the data of the heterocyclic compound by duplicating the number of possible combinations of the starting points of the cyclic structure.
  • ⁇ Case 1 If the number of dimensions of the plaintext handled by Somewhat homomorphic encryption is different from the length of the vector to be encrypted, it is not circulated.
  • ⁇ Case 2 Even if the number of dimensions of the plaintext handled by Somewhat homomorphic encryption and the length of the vector to be encrypted are the same, the value multiplied by -1 is used for calculation because it is a negative cycle.
  • the periodic array of data is cyclically redundant, stored in the coefficients of the polynomial of the indefinite element, and encrypted.
  • the homomorphic inner product operation can be appropriately performed. Calculations can be done correctly. As can be seen from the example below, zeros are put in the corresponding part of the other cyclically redundant vector. Note that the redundant part is the part described in white characters.
  • the periodic array of data is cyclically redundant and then stored in the coefficients of the polynomial of the indefinite element for encryption.
  • the homomorphic cyclic computation of the above-described fourth embodiment will be described more specifically below.
  • the encryption device 110 and the homomorphic cyclic arithmetic device 120 used in the description of the first embodiment will be referred to, but the device configuration is not necessarily limited to this.
  • each element shall be encoded from 0 to l-1.
  • the size of the score space be s size and the length of the periodic data array be r size .
  • the cyclic operation here permits both left and right shifts, and the shift amount for the left shift is s l and the shift amount for the right shift is s r .
  • the i-th row of the score table below is regarded as the vector T i .
  • n ⁇ (r size +s l +s r ) ⁇ l coefficient space size
  • s>s size means that all possible scores can be handled.
  • n ⁇ (r size +s l +s r ) ⁇ l is a condition for enciphering the length of the vector to be encrypted.
  • B′ (0 s_r*l , B y_0 , ... , B y_ ⁇ r_size-1 ⁇ , 0 s_l*l ) and where 0 a represents the zero vector of dimension a (see table below). 3.
  • Compute c 2 Enc2(B′) and send the output to homomorphic cyclic arithmetic unit 120 .
  • cip HomIP pk (c, c 1 ).
  • the calculation of c to e in the above similarity calculation is for masking in order to prevent leakage of information other than the constant term in the homomorphic inner product calculation. Therefore, it can be omitted if it is not necessary to prevent information leakage.
  • the homomorphic cyclic operation described in the second and third embodiments is a negative cyclic operation that is multiplied by -1 during the cyclic operation. It was shown that it can be used. Note that the similarity calculation is just one of the possible applications of the negative cyclic operation that is multiplied by -1 when cyclic. Application examples of the isomorphic cyclic operation are not limited to this.
  • the homomorphic cyclic operation system, the homomorphic cyclic operation device, the homomorphic cyclic operation method, and the homomorphic cyclic operation program of the fourth embodiment are suitable implementations for calculating the similarity of periodic arrays of data. form.
  • the user computes Enc(a 0 ), Enc(a 1 ), ... , Enc(a N ) and sends them to the database server. 2.
  • the database server calculates Enc(f(m)) using homomorphic operations as follows and sends it to the user.
  • a. c Enc(a N ) b.
  • For i N-1, N-2, ... , 0, compute: 1.
  • c HomMul(c, Enc(m)) 2.
  • c HomAdd(c, Enc(a i )) 3.
  • the user in the cipher function evaluation using the Horner method, the user must generate N+1 ciphertexts Enc(a 0 ), Enc(a 1 ), ... for the degree N of the polynomial to be evaluated. , Enc(a N ) and send it to the database server. Therefore, if the degree N of the polynomial to be evaluated increases, the user's encryption cost and the amount of communication between the database servers will increase.
  • the function evaluation value f ( m) a0 +a1*m + a2* m2 + ... + aN *mN.
  • the user uses the user terminal (encryption device 110) to calculate the inner product ciphertext Enc2 (( a0 , a1, ..., aN )) and sends it to the database server.
  • the database server (homomorphic cyclic arithmetic unit 120) calculates Enc(f(m)) using homomorphic arithmetic as follows.
  • A.c Enc(m)
  • B. Repeat the following process N-1 times and compute Enc((m, m 2 , ... , m N )).
  • a. c HomMul(c, Enc(m)) b.
  • c HomIP(c, Enc2((a 0 , a 1 , ... , a N ))).
  • the user decrypts c using the private key at the user terminal (encryption device 110) and extracts the evaluation value f(m).
  • a comparison is made between a security function evaluation method (Horner method) that does not use a homomorphic cyclic operation and a security function evaluation method that uses a homomorphic cyclic operation according to the fifth embodiment.
  • the following table compares a security function evaluation method (Horner method) that does not use a homomorphic cyclic operation and a security function evaluation method that uses a homomorphic cyclic operation according to the fifth embodiment. Note that HomMul and HomCycle have the same calculation cost, and Enc and Enc2 have the same calculation cost, so the calculation cost can be compared by comparing the number of processes.
  • the cipher function evaluation using the homomorphic cyclic operation of the fifth embodiment is more expensive than the cipher function evaluation not using the homomorphic cyclic operation. less traffic to
  • the calculation cost of the homomorphic processing performed in the database server is higher in the security function evaluation using the homomorphic cyclic operation of the fifth embodiment than in the case of the security function evaluation not using the homomorphic cyclic operation. Therefore, the security function evaluation using the homomorphic cyclic operation of the fifth embodiment can be suitably used when the terminal (encryption device 110) used by the user is weak.
  • the homomorphic cyclic computation in the fifth embodiment with the homomorphic cyclic computation system, the homomorphic cyclic computation device, the homomorphic cyclic computation method, and the homomorphic cyclic computation program of the first embodiment, the fifth The homomorphic cyclic arithmetic system, the homomorphic cyclic arithmetic device, the homomorphic cyclic arithmetic method, and the homomorphic cyclic arithmetic program of the embodiments can be realized. Therefore, the homomorphic cyclic computing system, homomorphic cyclic computing device, homomorphic cyclic computing method, and homomorphic cyclic computing program of the fifth embodiment are suitable embodiments for performing secure function evaluation.
  • [Appendix 1] A homomorphic cyclic operation system for homomorphic cyclic operations on a periodic array of data using a homomorphic cryptography in which the homomorphic operations are defined in terms of at least one multiplication, an encryption device that stores the periodic array of the data in coefficients of an indefinite polynomial and encrypts it to generate a ciphertext of the periodic data; a homomorphic cyclic arithmetic unit that shifts the periodic arrangement of the data in the ciphertext of the cyclic data by applying the shift amount power of the indefinite element to the ciphertext of the cyclic data; A homomorphic cyclic arithmetic system with [Appendix 2] The homomorphic cyclic arithmetic unit homomorphically multiplies the encrypted shift amount multiplication of the indefinite element by the ciphertext of the cyclic data to obtain the cyclic data of the cip
  • the homomorphic cyclic computing system according to appendix 1 shifts the periodic arrangement of the data in the ciphertext of the cyclic data by scalar-multiplying the ciphertext of the cyclic data by a shift amount multiplied by a base number substituted for the indefinite element. do, The homomorphic cyclic computing system according to appendix 1.
  • the homomorphic cyclic computing system according to appendix 1 has a number that satisfies r n ⁇ -1 mod d when the period n of the array and the ciphertext space size d are used.
  • the encryption device adds a noise vector to the periodic array of the data, stores it in the coefficients of an indefinite polynomial, and encrypts it.
  • the homomorphic cyclic arithmetic system according to any one of appendices 1 to 4.
  • the encryption device periodically makes the periodic array of the data redundant, stores it in coefficients of an indefinite polynomial, and encrypts it.
  • the homomorphic cyclic arithmetic system according to any one of appendices 1 to 5.
  • the periodic array is the coefficients of the evaluation polynomial to be evaluated by substituting values for evaluation
  • the encryption device encrypts coefficients of the evaluation polynomial
  • the homomorphic cyclic arithmetic unit repeats the ciphertext obtained by encrypting the value for evaluation by one shift and the multiplication of the ciphertext itself, and performs an inner product operation with the ciphertext of the coefficient of the evaluation polynomial. to obtain a ciphertext obtained by substituting the value for evaluation into the evaluation polynomial,
  • the homomorphic cyclic arithmetic system according to any one of appendices 1 to 5.
  • a homomorphic cyclic operation device for performing a homomorphic cyclic operation on a periodic array of data using a homomorphic encryption in which a homomorphic operation is defined for at least one multiplication,
  • the ciphertext generated by storing the cyclic array of the data in the coefficients of the polynomial of the indefinite element and encrypting it is multiplied by the shift amount of the indefinite element to obtain the data in the ciphertext of the periodic data.
  • a homomorphic cyclic arithmetic unit that shifts periodic arrays.
  • a method of homomorphic cyclic operations for homomorphic cyclic operations on a periodic array of data using a homomorphic encryption in which a homomorphic operation is defined in terms of at least one multiplication comprising: generating a ciphertext of periodic data by storing and encrypting the periodic array of the data in the coefficients of a polynomial of indeterminates; shifting the cyclic array of the data in the ciphertext of the periodic data by operating the ciphertext of the periodic data to the power of the shift amount of the variable;
  • a homomorphic cyclic arithmetic method comprising [Appendix 10] 1.
  • a program that causes a computer to perform homomorphic cyclic operations on a periodic array of data using a homomorphic encryption in which the homomorphic operations are defined in terms of at least one multiplication comprising: The ciphertext generated by storing the cyclic array of the data in the coefficients of the polynomial of the indefinite element and encrypting it is multiplied by the shift amount of the indefinite element to obtain the data in the ciphertext of the periodic data.
  • a program to shift a cyclic array comprising: The ciphertext generated by storing the cyclic array of the data in the coefficients of the polynomial of the indefinite element and encrypting it is multiplied by the shift amount of the indefinite element to obtain the data in the ciphertext of the periodic data.
  • any numerical range recited herein should be construed as specifically recited for any numerical value or subrange within that range, even if not otherwise stated.
  • each disclosure item of the above-cited document can be used in combination with the items described in this document as part of the disclosure of the present invention in accordance with the spirit of the present invention, if necessary. are considered to be included in the disclosure of the present application.
  • REFERENCE SIGNS LIST 100 homomorphic cyclic arithmetic system 110 encryption device 120 homomorphic cyclic arithmetic device 121 storage unit 122 receiving unit 123 arithmetic unit 10 hardware configuration 11 CPU (Central Processing Unit) 12 Main Storage Device 13 Auxiliary Storage Device 14 IF (Interface) Section

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

準同型巡回演算システムは、少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をするものであって、データの周期的な配列を不定元の多項式の係数に格納して暗号化して、周期データの暗号文を生成する暗号化装置と、周期データの暗号文に前記不定元のシフト量乗を作用することにより、周期データの暗号文におけるデータの周期的な配列をシフトする準同型巡回演算装置とを備える。

Description

準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム
 本発明は、準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムに関するものである。
 暗号技術の一つに準同型暗号というものがある。準同型暗号とは、平文m1,m2の暗号文Enc(m1), Enc(m2)が与えられたときに、平文m1, m2の二項演算m1○m2の暗号文Enc(m1○m2)を平文m1, m2に復号することなく計算できるものをいう。ここで「○」は二項演算であり、例えば加法「+」や乗法「×」である。加法「+」に関する準同型暗号は、加法準同型暗号と呼ばれている。また、乗法「×」に関しても準同型である準同型暗号は、完全準同型暗号と呼ばれている。
 完全準同型暗号は、加法および乗法に関しても準同型であるので最も性質がよい。しかしながら、完全準同型暗号は、計算量が多く実用に難点がある。そこで、加法準同型暗号と完全準同型暗号の中間的性質の準同型暗号も開発されている。例えば、Somewhat準同型暗号と呼ばれる暗号方式は、有限回の加算と乗算に関する準同型性を有する準同型暗号である(例えば非特許文献1参照)。
Yasuda M., Shimoyama T., Kogure J., Yokoyama K., Koshiba T. (2013) Packed Homomorphic Encryption Based on Ideal Lattices and Its Application to Biometrics. In: Cuzzocrea A., Kittl C., Simos D.E., Weippl E., Xu L. (eds) Security Engineering and Intelligence Informatics. CD-ARES 2013. Lecture Notes in Computer Science, vol 8128. Springer, Berlin, Heidelberg.
 なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
 ところで、現実のコンピュータシステムでは、加法および乗法だけでなく、その他の良く使われる演算を用意するのが通常である。理論的には加法および乗法の組み合わせで実現される演算であっても、所定の演算をプロトコルとしてユーザーに提供する方が便利だからである。そのような演算の例として巡回演算がある。巡回演算とは、データの周期的な配列に対してデータの順序を保ちながら格納場所を移動させる演算である。データの順序を保ちながら格納場所を移動させる演算は一般にシフトと呼ばれており、巡回演算は周期的な配列に対してシフトを行う演算である。
 もちろん、準同型暗号のシステムにおいて巡回演算を実施するには、単に巡回演算を実現するだけではなく、暗号化されたデータの周期的な配列を復号することなく、データの格納場所をシフトする必要がある。そして、準同型暗号において巡回演算を実施するためには、準同型暗号固有の問題として計算コストにも対応する必要がある。
 本発明の目的は、上述した課題を鑑み、暗号化されたデータの周期的な配列を復号することなく、データの格納場所をシフトする準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムを提供することにある。
 本発明の第1の視点では、少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算システムであって、前記データの周期的な配列を不定元の多項式の係数に格納して暗号化して、周期データの暗号文を生成する暗号化装置と、前記周期データの暗号文に前記不定元のシフト量乗を作用することにより、前記周期データの暗号文における前記データの周期的な配列をシフトする準同型巡回演算装置と、を備える準同型巡回演算システムが提供される。
 本発明の第2の視点では、少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算装置であって、前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって生成した暗号文に前記不定元のシフト量乗を作用することにより、前記周期データの暗号文における前記データの周期的な配列をシフトする準同型巡回演算装置が提供される。
 本発明の第3の視点では、少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算方法であって、前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって周期データの暗号文を生成するステップと、前記周期データの暗号文に前記不定元のシフト量乗を作用することによって前記周期データの暗号文における前記データの周期的な配列をシフトするステップと、を備える準同型巡回演算方法が提供される。
 本発明の第4の視点では、少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をすることをコンピュータに行わせるプログラムであって、前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって生成した暗号文に前記不定元のシフト量乗を作用することにより、前記周期データの暗号文における前記データの周期的な配列をシフトするプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明の各視点によれば、暗号化されたデータの周期的な配列を復号することなく、データの格納場所をシフトする準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムを提供することができる。
図1は、第1の実施形態における準同型巡回演算システムの概略構成例を示すブロック図である。 図2は、第1の実施形態における準同型巡回演算装置の概略構成例を示すブロック図である。 図3は、第1の実施形態におけるシステムのシステムフローチャートである。 図4は、準同型巡回演算装置のハードウェア構成例を示す図である。 図5は、複素環式化合物の類似度の秘密計算の概念を示す図である。
 以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
[第1の実施形態]
 以下、図1、図2を参照して、第1の実施形態に係る準同型巡回演算システムについて説明する。第1の実施形態は、本発明の基本的なコンセプトのみを説明する実施形態である。
 図1は、第1の実施形態における準同型巡回演算システムの概略構成例を示すブロック図である。図1に示すように、第1の実施形態に係る準同型巡回演算システム100は、暗号化装置110と準同型巡回演算装置120とを備えている。暗号化装置110および準同型巡回演算装置120は、後にハードウェア構成を例示する情報処理装置(コンピュータ)である。暗号化装置110と準同型巡回演算装置120は、有線通信によって接続されていてもよく、また、無線通信によって接続されていてもよい。例えば、暗号化装置110は、汎用的パーソナルコンピュータとすることもでき、スマートフォンなどのモバイル端末とすることもできる。
 図1に示す第1の実施形態に係る準同型巡回演算システム100は、データの配列を暗号化でき、少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の巡回演算をするためのものである。暗号化装置110は、データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって周期データの暗号文を生成し、準同型巡回演算装置120は、周期データの暗号文に不定元のシフト量乗を作用することによって周期データの暗号文におけるデータの周期的な配列をシフトする。
 なお、準同型巡回演算装置120は、データの周期的な配列を復号することなくシフトする。したがって、準同型巡回演算装置120の出力も暗号文である。得られた暗号文をどのように用いるかは後に例示する実施形態など様々であるが、得られた暗号文を復号するための復号装置を準同型巡回演算装置120と分けて別途備えるように構成すると、準同型暗号の秘密鍵と公開鍵を異なる装置に分けて管理することができるので安全性が高まるので好ましい。
 第1の実施形態で用いる準同型暗号は、データの配列を暗号化でき、少なくとも1回の乗算に関して準同型演算が定義されるものを用いることができる。なお、実施形態にて直接的に用いるものではないが、加算についても準同型演算が定義されていることが好ましい。すなわち、第1の実施形態で用いる準同型暗号には、以下の関係式を満たす準同型加算および準同型乗算が定義されている。
・準同型加算
HomAdd(Enc(m), Enc(m′))=Enc(m+m′)
・準同型乗算
HomMul(Enc(m), Enc(m′))=Enc(m*m′)
 図2は、第1の実施形態における準同型巡回演算装置の概略構成例を示すブロック図である。図2に示すように、準同型巡回演算装置120は、記憶部121と受信部122と演算部123とを備えている。記憶部121は、準同型巡回演算および準同型巡回演算に関連して用いられる各種情報を記憶している。受信部122は、暗号化装置110から周期データの暗号文を受信する。演算部123は、上記準同型演算を用いて周期データの暗号文を復号することなく巡回演算する。
 次に、図3を参照しながら、暗号化装置110と準同型巡回演算装置120との間における処理について説明する。図3は、第1の実施形態におけるシステムのシステムフローチャートである。図3に示すシステムフローチャートは、データの配列を暗号化でき、少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算方法の手順を示している。
 ステップS1では、暗号化装置110がデータの周期的な配列を不定元の多項式の係数に格納して暗号化することによって周期データの暗号文を生成する。生成された周期データの暗号文は、暗号化装置110から準同型巡回演算装置120へ送信される。
 ステップS2では、準同型巡回演算装置120が、暗号化装置110から受信した周期データの暗号文に不定元のシフト量乗を作用することによって周期データの暗号文におけるデータの周期的な配列をシフトする。
 なお、ステップS2によって得られた暗号文をどのように用いるかは後に例示する実施形態など様々である。
[ハードウェア構成例]
 図4は、準同型巡回演算装置のハードウェア構成例を示す図である。すなわち、図4に示すハードウェア構成例は、準同型巡回演算装置120のハードウェア構成例である。
 図4に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した準同型巡回演算方法をプログラムとして実行することで、準同型巡回演算装置120の各機能を実現することを可能にする。ただし、図4に示すハードウェア構成例は、準同型巡回演算装置120の各機能を実現するハードウェア構成の一例であり、準同型巡回演算装置120のハードウェア構成を限定する趣旨ではない。準同型巡回演算装置120は、図4に示さないハードウェアを含むことができる。
 図4に示すように、準同型巡回演算装置120が採用し得るハードウェア構成10は、例えば内部バスにより相互に接続される、CPU(Central Processing Unit)11、主記憶装置12、補助記憶装置13、およびIF(Interface)部14を備える。
 CPU11は、準同型巡回演算装置120が実行する準同型巡回演算プログラムに含まれる各指令を実行する。主記憶装置12は、例えばRAM(Random Access Memory)であり、準同型巡回演算装置120が実行する準同型巡回演算プログラムなどの各種プログラムなどをCPU11が処理するために一時記憶する。
 補助記憶装置13は、例えば、HDD(Hard Disk Drive)であり、準同型巡回演算装置120が実行する準同型巡回演算プログラムなどの各種プログラムなどを中長期的に記憶しておくことが可能である。準同型巡回演算プログラムなどの各種プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置13は、非一時的なコンピュータ可読記録媒体に記録された準同型巡回演算プログラムなどの各種プログラムを中長期的に記憶することに利用することが可能である。IF部14は、例えば準同型巡回演算装置120と暗号化装置110との間の入出力に関するインターフェイスを提供する。
 上記のようなハードウェア構成10を採用した情報処理装置は、先述した準同型巡回演算方法をプログラムとして実行することで、準同型巡回演算装置120の各機能を実現する。
 以上のように、第1の実施形態における準同型巡回演算システムは、暗号化されたデータの周期的な配列を復号することなく、データの格納場所をシフトすることに寄与することができる。また、第1の実施形態における準同型巡回演算システムは、準同型巡回演算方法として実施することができ、第1の実施形態における準同型巡回演算方法は、上述のハードウェア構成の情報処理装置(コンピュータ)で実行するプログラムとしても実施可能である。
[第2の実施形態]
 以下、第2の実施形態に係る準同型巡回演算システムについて説明する。第2の実施形態は、第1の実施形態で用いられた準同型暗号を例示しながらデータの周期的な配列の準同型巡回演算を行う方法を説明する。以下で説明する準同型暗号は、データの配列を暗号化でき、少なくとも1回の乗算に関して準同型演算が定義される。
 まず、データの周期的な配列の1周期分は、ベクトルと見做すことができる。そして、ベクトルa=(a0, a1, … , an-1)と多項式a(x)=Σi=0 n-1 ai * xiは同一視することができる。この同一視によって、ベクトルa=(a0, a1, … , an-1)とベクトルb=(b0, b1, … , bn-1)には、多項式としての掛け算a(x) * b(x)とベクトルとしての内積<a, b>=Σi=0 n-1 ai * biが定義される。
 ここで、ノイズベクトルu=(u0, u1, … , un-1)を用意する。ui(i=0,1,…n-1)は{0, 1, -1}のいずれかとなる。ui=0となる確率はqであり、ui=1となる確率は(1-q)/2であり、ui=-1となる確率は(1-q)/2である。
 このノイズベクトルu=(u0, u1, … , un-1)を用いて、平文ベクトルm=(m0, m1, … , mn-1)の暗号文を以下のように定める。
Figure JPOXMLDOC01-appb-M000001
 ただし、上記暗号文の定義において、tは平文の空間サイズであり、dは暗号文の空間サイズであり、rは進数でありrn = -1 mod dを満たす。また、[ ]dは区間[-d/2, d/2)へのリダクションであり、すなわちdで割った余りが区間[-d/2, d/2)に入るようなリダクションである。
 上記暗号文は、ノイズベクトルu=(u0, u1, … , un-1)と平文ベクトルm=(m0, m1, … , mn-1)をそれぞれ多項式u(x)=Σi=0 n-1 ui * xiと多項式m(x)=Σi=0 n-1 mi * xiと見做すと、以下のように見做すことができる。
Figure JPOXMLDOC01-appb-M000002
 次に、このように定めた暗号文が準同型暗号となっていることを示す。
・準同型加算
 多項式で表した平文ベクトルm(x)とm′(x)の暗号文Enc(m(x))とEnc(m′(x))に対して、以下に示すように加法準同型性が成り立つ。
[Enc(m(x))+Enc (m′(x))]d
=[[m(r)+t*u(r)]d+[m′(r)+t*u′(r)]d]d
=[[m(r)+ m′(r)+t*(u(r)+ u′(r))]d
=Enc(m(x)+m′(x) mod t)
ここで、mod tはm(r)+ m(r)の各係数がtより大きくなるとt*(u(r)+ u′(r))側に吸収されることに注意する。
・準同型乗算
 多項式で表した平文ベクトルm(x)とm′(x)の暗号文Enc(m(x))とEnc(m′(x))に対して、以下に示すように乗法準同型性が成り立つ。
[Enc(m(x))*Enc(m′(x))]d
=[[m(r)+t*u(r)]d*[m′(r)+t*u′(r)]d]d
=[(m(r)+t*u(r))*(m′(r)+t*u′(r))]d
=[m(r)*m′(r)+t*(m(r)*u′(r)+ m′(r)*u(r)+t*u(r)*u′(r))]d
=[m(r)*m′(r)+t*u′′(r) mod rn+1]d
=Enc(m(x)*m′(x) mod (t, xn+1))
ただし、上記式変形においてu′′(r)= m(r)*u′(r)+ m′(r)*u(r)+t*u(r)*u′(r)である。また、rn=-1 mod dであることに注意する。なお、f(x) mod (t, xn+1)は、f(x) mod t mod (xn+1)を表す。つまり、f(x)をxn=-1の関係を用いてn次より小さい多項式f′(x)に変換した後,f′(x)の各係数をtで割った余りの多項式である。
・準同型内積
 平文ベクトルm=(m0,m1,…,mn-1)に対して、内積用ベクトルm2=(m20,m21,…,m2n-1) =(m0,-mn-1,-mn-2,…,-m1)を用意する。内積用暗号文Enc2(m)をEnc(m2)と定め、内積用ベクトルm2を係数に持つ多項式をm2(x)とする。このとき、多項式で表した平文ベクトルm(x)の暗号文Enc(m(x))と、と平文ベクトルm′(x)の内積用暗号文Enc2(m′(x))に対して、以下が成り立つ。
HomMul(Enc(m(x)), Enc2(m′(x)))
=Enc(m(x)*m2′(x) mod (t, xn+1))
=Enc(<m,m′>+m′′(x) mod t)
 なぜならば、xn=-1であることに注意すると、Σi=1 n-1 -mi*m′i*xn = Σi=1 n-1 mi*m′iとなるので、以下の計算が成り立つからである。
m(x)=m0 + m1*x + m2*x2 + … + mn-1*xn-1
×m2′(x)=m′0 - m′1*xn-1 - m′2*xn-2 - … - m′n-1*x1
=m0* m′0 + Σi=1 n-1 -mi*m′i*xn + m′′(x)
i=0 n-1 mi*m′i + m′′(x)
=<m,m′> + m′′(x)
 上記準同型演算を用いると、不定元xのシフト量s乗、つまりxsを暗号化したEnc(xs)と、周期データm(x)の暗号文Enc(m(x))とを準同型乗算することで、周期データm(x)の暗号文Enc(m(x))におけるデータの周期的な配列をシフトすることができる。なぜならば、以下の関係式が成り立つからである。
HomMul(Enc(m(x)),Enc(xs))
=Enc(m(x)*xs mod (t, xn+1))
=Enc((m>>_s) mod t)
 ただし、上記数式において>>_はベクトルの右方向への負巡回演算(巡回する際に-1倍される巡回演算)を表す。すなわち、上記準同型巡回演算は、平文ベクトル平文 m=(m0, m1,…,mn-1) に対する暗号文をEnc(m)とし、巡回量をsとする場合、巡回後の暗号文HomCycle(Enc (m), s)が以下のように得られるものである。
HomCycle(Enc (m), s)=Enc((-mn-s, … ,-mn-1, m0, … , mn-1-s ))
 なお、上記準同型巡回演算は、巡回する際に-1倍されるが後に説明する実施形態からも解るように実用上は問題がない。また、上記準同型巡回演算は、第1の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムに組み合わせることによって、第2の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムを実現する。
[第3の実施形態]
 次に、第2の実施形態における準同型巡回演算を改良した準同型巡回演算を説明する。第3の実施形態における準同型巡回演算は、第2の実施形態における暗号化および準同型巡回演算以外の準同型演算を用いることができるので、以下の第3の実施形態の説明では、第3の実施形態における準同型巡回演算のみを説明する。
 第3の実施形態における準同型巡回演算は、周期データm(x)の暗号文Enc(m(x))を不定元xに進数rを代入したもののシフト量s乗、つまりrsでスカラー倍することで、周期データm(x)の暗号文Enc(m(x))における前記データの周期的な配列をシフトする。
 具体的には、多項式で表した平文m(x)の暗号文Enc(m(x))に対して、巡回量sの準同型巡回演算は以下のように計算することができる。ただし、下記式変形中でu′(r))=u(r)*rsである。
[Enc(m(x))*rs]d
=[[m(r)+t*u(r)]d*rs]d
=[m(r)*rs + t*u(r)*rs]d
=[m0*rs + m1*r1+s + … + mn-1*rn-1+s + t*u′(r)]d
=[-mn-s + (-mn-s+1)*r + … + (-mn-1)*rs-1 + m0*rs + m1*rs+1 + … + mn-s-1*rn-1 + t*u′(r)]d
=Enc((m>>_s) mod t)
 なお、rn = -1 mod d より r-1 = -rn-1 mod d であるから、シフト量sが負の場合は左方向への負巡回演算となる。
 ここで、第2の実施形態における準同型巡回演算と第3の実施形態における準同型巡回演算の違いについて説明する。
 第2の実施形態における準同型巡回演算は、HomMul(Enc(m(x)),Enc(xs))を計算するので、Enc(xs)を保管もしくは毎回計算する必要がある。一方、第3の実施形態における準同型巡回演算で用いるriは、暗号化でも用いられるので、事前に計算されていて計算結果がメモリに記憶されていることが多い。したがって、その場合、既に計算されているriを再利用することができるので、追加の保管コストおよび計算コストが発生しない。
 また、第3の実施形態における準同型巡回演算で用いるriを再利用することができず、計算する必要がある場合であっても、riの計算コストは、Enc(xs)の計算コストよりは小さい。なぜならば、暗号化の定義式Enc(m)=[Σi=0 n-1 (mi+t*ui)*ri]dにriが含まれているからである。
 さらに、第2の実施形態における準同型巡回演算は、準同型乗算HomMulを用いた場合復号誤りの要因となるノイズの増加を引き起してしまう。ここで、ノイズの増加とは暗号文Enc(m(x))=[m(r)+t*u(r)]dにおけるu(r)に対応する多項式u(x)の係数の絶対値が大きくなることをいう。一方、第3の実施形態における準同型巡回演算では、準同型巡回演算後のノイズがu′(r)=u(r)*rsであるから、対応するu>>_sを係数に持つ多項式であり、巡回した要素の正負は反転しているが、係数の絶対値は変わらない。したがって、ノイズの増加は発生しない。
 つまり、第3の実施形態における準同型巡回演算は、第2の実施形態における準同型巡回演算と比較すると、追加の記憶コストまたは計算コスト、および復号エラー確率の増加またはそれに対応するために暗号方式のパラメータを大きくすることによる暗号方式全体の計算コストが少ないというメリットがある。
 なお、第3の実施形態における準同型巡回演算も、第1の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムに組み合わせることによって、第3の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムを実現することができる。
[第4の実施形態]
 上記説明した準同型巡回演算は、巡回する際に-1倍される負巡回演算である。第4の実施形態では、巡回する際に-1倍される負巡回演算であっても、工夫をすることで実用可能であることを類似度の計算を例に用いて説明する。データの周期的な配列を周期的に冗長させてから不定元の多項式の係数に格納して暗号化することで巡回する際に-1倍される負巡回演算であっても、適切に類似度の計算を行うことができる。
 図5は、複素環式化合物の類似度の秘密計算の概念を示す図である。図5に示すように、複数の製薬会社から複素環式化合物Aの構造を暗号化して登録しているデータベースがあるとする。そして、ユーザーは自己が発見等した複素環式化合物Bが過去に登録されている複素環式化合物とどれぐらい類似しているかの類似度を知りたいとする。複素環式化合物がどれぐらい類似しているかの類似度は、例えば下記スコア表のように複素環式化合物に含まれる原子の対応関係によって定められるものとする。
Figure JPOXMLDOC01-appb-T000003
 すると、スコア表から内積演算を用いて類似度の計算をすることができる。例えば、図5に示される例で説明すると、複素環式化合物Aに含まれる原子に従いスコア表の行を選択して、これら選択されたスコア表の行を一列に繋げた配列Aを作成する。ここでは、左上から右回りに順に繋げるとする。もう一方の複素環式化合物Bについては、複素環式化合物Bに含まれる原子に従い該当する箇所に1を該当しない箇所に0を割り当てる配列Bを作成する。同様に、左上から右回りに順に繋げるとする。
 この2つの配列Aと配列Bにベクトルとしての内積演算を行うことで類似度計算をすることができる。ここで、既に説明したように内積演算は準同型演算を用いることができるので、複素環式化合物Aと複素環式化合物Bの構造を秘匿したまま類似度計算を行うことができる。
Figure JPOXMLDOC01-appb-T000004
 <A, B> = +5 + 0 + 0 + … + 0 + 0 + 0
 ところで、複素環式化合物は巡回構造であるので、どこを始点として類似度計算をするかによって類似度の値が変わってしまう。実際、複素環式化合物Aと複素環式化合物Bは同じ複素環式化合物であるが巡回構造の始点が異なっているために類似度が低く計算されてしまっている。準同型巡回演算がない場合は、巡回構造の始点の取り得る組み合わせの数だけ重複して複素環式化合物のデータを暗号化する必要がある。一方、準同型巡回演算があれば、巡回構造の始点を任意の一つに定めて暗号化した後に、準同型巡回演算によって暗号化したまま始点を変更することが可能である。
 しかしながら、上記説明した準同型巡回演算では、巡回する際に-1倍される負巡回演算であるので以下の2点において問題が生じる。
・Case1:Somewhat準同型暗号が扱う平文の次元数と暗号化するベクトルの長さが異なる場合、巡回されない。
 例えば、以下に示すように、準同型暗号が扱う平文の次元数と暗号化するベクトルの長さが異なる場合、余りの次元の部分には0が格納されている。この場合、準同型内積演算を行っても正しい結果が得られない。
Figure JPOXMLDOC01-appb-T000005
 <A′, B> = +1 (本来は+5)
・Case2:Somewhat準同型暗号が扱う平文の次元数と暗号化するベクトルの長さが同じ場合でも、負巡回であることから-1倍された値が計算に利用される。
 例えば、以下に示すように、準同型暗号が扱う平文の次元数と暗号化するベクトルの長さが同じ場合でも、負巡回であることから-1倍された値が計算に利用されるので、準同型内積演算を行っても正しい結果が得られない。
Figure JPOXMLDOC01-appb-T000006
 <A′, B> = -5 (本来は+5)
 そこで、第4の実施形態の準同型巡回演算では、データの周期的な配列を周期的に冗長させてから不定元の多項式の係数に格納して暗号化する。これにより、第4の実施形態の準同型巡回演算は、巡回する際に-1倍される負巡回演算であっても、適切に準同型内積演算を行うことができ、結果として、類似度の計算も正しく行うことができる。なお、下記の例からも解るように、周期的に冗長させたもう一方のベクトルの対応部分にはゼロを入れる。なお、冗長部分は白抜き文字で記載された部分である。
Figure JPOXMLDOC01-appb-T000007
 <A′, B> = +5 (正解)
 また、準同型暗号が扱う平文の次元数と暗号化するベクトルの長さが同じ場合でも、データの周期的な配列を周期的に冗長させてから不定元の多項式の係数に格納して暗号化することで、巡回する際に-1倍される負巡回演算であっても、適切に準同型内積演算を行うことができ、結果として、類似度の計算も正しく行うことができる。
Figure JPOXMLDOC01-appb-T000008
 <A′, B> = +5 (正解)
 以下、上記説明した第4の実施形態の準同型巡回演算をより具体的に説明する。なお、以下の説明では、第1の実施形態の説明で用いた暗号化装置110および準同型巡回演算装置120を参照するが装置構成が必ずしもこれに限定されるものではない。
・前提条件
 まず、前提条件として、各要素は0からl-1にエンコードされるものとする。スコア空間のサイズはssizeであり、周期的なデータの配列の長さはrsizeであるとする。また、ここでの巡回演算は、左右両方へのシフトを許容し、左シフトのシフト量をslとし、右シフトのシフト量をsrとする。また、下記スコア表のi行目をベクトルTiと見做す。
Figure JPOXMLDOC01-appb-T000009
・セットアップ
 セキュリティパラメータを入力とし、係数空間サイズs>ssizeのn-1次(n≧(rsize+sl+sr)×l)の多項式を平文として扱うことができるSomewhat準同型暗号の公開鍵pkと秘密鍵skを生成する。ここで、s>ssizeは出力される可能性のあるスコアをすべて扱えることを意味している。また、n≧(rsize+sl+sr)×lは暗号化するベクトルの長さを暗号化できるための条件である。
・登録
 登録フェーズでは、公開鍵pkとデータの周期的な配列(ベクトル)x=(x0, x1, … , xr_size-1)を入力とし、以下の計算を行う。なお、この処理は典型的には暗号化装置110を用いて行われるが、事前に準同型巡回演算装置120に登録しておくことができるのであれば装置に限定されない。
1.データの周期的な配列(ベクトル)xを冗長化したベクトルをx′=(xr_size-s_r, … , xr_size-1, x0, … , xr_size-1, x0, ... , xs_l)とする。
2.ベクトルx′の各要素に対応するスコア表の行ベクトルを並べたベクトルを T=(Tx_{r_size-s_r}, ... , Tx_{r_size-1}, Tx_0, … , Tx_{r_size-1}, Tx_0, … , Tx_{s_l})とする(下記表を参照)。
3.c1=Enc(T)を計算し出力する。
Figure JPOXMLDOC01-appb-T000010
・クエリ
 クエリのフェーズでは、暗号化装置110が公開鍵pkとデータの周期的な配列(ベクトル)y=(y0, y1, … , yr_size-1)を入力とし、以下の計算を行う。
1.ベクトルyの各要素の値の次元のみ1でそれ以外0であるベクトルを並べたベクトルをB=(By_0, … , By_{r_size-1}),Bi=(b0, b1, … ,bl-1),bj={0  if j≠yi ,1  if j=yi}とする。
2.ベクトルBの左右にsr, sl個の次元数lの零ベクトルを追加したベクトルをB′=(0s_r*l, By_0, … , By_{r_size-1}, 0s_l*l)とする。ここで、0aは次元数aの零ベクトルを表す(下記表を参照)。
3.c2=Enc2(B′) を計算し、出力を準同型巡回演算装置120へ送信する。
Figure JPOXMLDOC01-appb-T000011
・類似度計算
 類似度計算のフェーズでは、準同型巡回演算装置120が公開鍵pkと登録で生成された暗号文c1とクエリで生成された暗号文c2とを入力とし、以下の計算を行う。
1.空の集合C={ }を用意する。
2.j = -sl,...,srに対して以下aからdを計算する。
a. c = HomCycle(c1, l*j)
b. cip = HomIPpk(c, c2)
c. r = (0, r1, r2, … , rn-1) (ri は暗号方式の平文空間上一様ランダム)を生成する。
d. cr=Enc(r)
e. c=HomAdd(cip, cr) を C に追加する。
3.Cを出力し、これを暗号化装置110へ送信する。
 なお、上記類似度計算のうちaとbの計算は、c = HomCycle(c2, l*j)とcip = HomIPpk(c, c1)としてもよい。また、上記類似度計算のうちcからeの計算は、準同型内積演算のうち定数項以外から情報が漏洩することを防ぐためにマスクをするためのものである。したがって、情報が漏洩することを防ぐ必要がない場合は省略することも可能である。
・復号
 復号のフェーズでは、暗号化装置110が秘密鍵skと類似度計算で生成された暗号文の集合Cとを入力として、以下の計算を行う。
1.空の集合M={ }を用意する。
2.すべてのc∈Cに対して、以下の計算をする。
a. m = (m0, m1, … , mn-1) = Dec(c) とする。
b. m0 をMに追加する。
3.Mを出力する。
 以上のように第2の実施形態および第3の実施形態で説明した準同型巡回演算は、巡回する際に-1倍される負巡回演算であるが、工夫をすることで類似度の計算に用いることができることが示された。なお、類似度の計算は、巡回する際に-1倍される負巡回演算を適用することが可能な例の一つに過ぎず、第2の実施形態および第3の実施形態で説明した準同型巡回演算の応用例がこれに限定されるものではない。
 また、第4の実施形態における準同型巡回演算も、第1の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムに組み合わせることによって、第4の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムを実現することができる。したがって、第4の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムは、データの周期的な配列の類似度計算を行うのに好適な実施形態である。
[第5の実施形態]
 次に、第2の実施形態および第3の実施形態で説明した準同型巡回演算のもう一つの応用例を説明する。第5の実施形態における準同型巡回演算は、秘匿関数評価に用いられるものである。また、以下の説明では、第1の実施形態の説明で用いた暗号化装置110および準同型巡回演算装置120を参照するが装置構成が必ずしもこれに限定されるものではない。
 秘匿関数評価とは、データmの暗号文Enc(m)がデータベースサーバに登録されているとし、ユーザーは整数係数の多項式関数f(x)=a0+a1*x+a2*x2+…+aN*xNをデータベースサーバに秘匿したまま関数の評価値f(m)=a0+a1*m+a2*m2+…+aN*mNを計算するものである。ただし、評価したい多項式の次数Nは公開してもよいものとし、秘密鍵は別の安全な手段でユーザーに渡されるとする。
 まず、比較のために準同型巡回演算を用いない秘匿関数評価について説明する。この準同型巡回演算を用いない秘匿関数評価は、ホーナー法を用いるものであり、f(x)=a0+a1*x+a2*x2+…+aN*xNをf(x)=a0+x*(a1+x*(a2+…x(aN-1+x*aN)))として書き換えることができることを利用する。このホーナー法は最も少ない加算と乗算の演算回数でn次の多項式の評価を行うことができることが知られている。
1.ユーザーはEnc(a0), Enc(a1), ... , Enc(aN)を計算し、これらをデータベースサーバに送付する。
2.データベースサーバは以下のように準同型演算を用いてEnc(f(m))を計算し、ユーザーに送付する。
a. c = Enc(aN)
b. i = N-1, N-2, ... , 0に対して、以下を計算する。
 1. c=HomMul(c, Enc(m))
 2. c=HomAdd(c, Enc(ai))
3.m′=(m′0, m′1, ... , m′n-1)=Dec(c)とする。
4.m′0を評価値f(m)= a0+a1*m+a2*m2+…+aN*mNとする。
 上記計算から解るように、ホーナー法を用いる秘匿関数評価では、評価したい多項式の次数Nに対して、ユーザーはN+1個の暗号文Enc(a0), Enc(a1), ... , Enc(aN)を計算し、データベースサーバに送付する。したがって、評価したい多項式の次数Nが大きくなるとユーザーの暗号化コストとデータベースサーバ間の通信量が増加することになる。
 そこで、準同型巡回演算を用いることで、評価したい多項式の次数Nが大きい場合でもユーザーの暗号化コストとデータベースサーバ間の通信量が増加しないようにする。
 具体的には、以下のように多項式関数f(x)=a0+a1*x+a2*x2+…+aN*xNをデータベースサーバに秘匿したまま関数の評価値f(m)=a0+a1*m+a2*m2+…+aN*mNを計算する。
1.まず、ユーザーはユーザー端末(暗号化装置110)を用いて内積用暗号文Enc2((a0, a1, ... , aN))を計算し、これをデータベースサーバに送付する。
2.データベースサーバ(準同型巡回演算装置120)は以下のように準同型演算を用いてEnc(f(m))を計算する。
A. c=Enc(m)
B. 次の処理をN-1回繰り返し,Enc((m, m2, ... , mN))を計算する。
 a. c=HomMul(c, Enc(m))
 b. c=HomCycle(c, 1)
 c. c=HomAdd(c,Enc(m))
C. 次の処理でEnc((1, m, m2, ... , mN))を計算
 a. c=HomCycle(c, 1)
 b. c=HomAdd(c,Enc(1)) (Enc(1)は予め計算しておく)
D.上記のように計算されたc= Enc((m, m2, ... , mN))とユーザーから送信されたEnc2((a0, a1, ... , aN))との準同型内積c=HomIP(c, Enc2((a0, a1, ... , aN)))を計算する。この計算後、c=Enc(a0+a1*m+a2*m2+…+aN*mN)=Enc(f(m))となっている。
3.ユーザーはユーザー端末(暗号化装置110)にて秘密鍵を用いてcを復号し、評価値f(m)を取り出す。
 ここで、準同型巡回演算を用いない秘匿関数評価方法(ホーナー法)と第5の実施形態の準同型巡回演算を用いる秘匿関数評価方法の比較を行う。下記表は、準同型巡回演算を用いない秘匿関数評価方法(ホーナー法)と第5の実施形態の準同型巡回演算を用いる秘匿関数評価方法を比較した表である。なお、HomMulとHomCycleの計算コストは同じであり、EncとEnc2の計算コストは同じあり、計算コストの比較は処理回数の比較をすればよい。
Figure JPOXMLDOC01-appb-T000012
 上記比較表から解るように、第5の実施形態の準同型巡回演算を用いる秘匿関数評価の方が、準同型巡回演算を用いない秘匿関数評価よりも、暗号化の計算コストおよびユーザーからデータベースサーバへの通信量が少なくて済む。一方、第5の実施形態の準同型巡回演算を用いる秘匿関数評価の方が、準同型巡回演算を用いない秘匿関数評価よりも、データベースサーバで行われる準同型処理の計算コストが大きい。したがって、第5の実施形態の準同型巡回演算を用いる秘匿関数評価は、ユーザーが用いる端末(暗号化装置110)が非力である場合などに好適に活用することができる。
 また、第5の実施形態における準同型巡回演算も、第1の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムに組み合わせることによって、第5の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムを実現することができる。したがって、第5の実施形態の準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラムは、秘匿関数評価を行うのに好適な実施形態である。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
 少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算システムであって、
 前記データの周期的な配列を不定元の多項式の係数に格納して暗号化して、周期データの暗号文を生成する暗号化装置と、
 前記周期データの暗号文に前記不定元のシフト量乗を作用することにより、前記周期データの暗号文における前記データの周期的な配列をシフトする準同型巡回演算装置と、
を備える準同型巡回演算システム。
[付記2]
 前記準同型巡回演算装置は、前記不定元のシフト量乗を暗号化したものと、前記周期データの暗号文とを準同型乗算することで、前記周期データの暗号文における前記データの周期的な配列をシフトする、
 付記1に記載の準同型巡回演算システム。
[付記3]
 前記準同型巡回演算装置は、前記周期データの暗号文を前記不定元に進数を代入したもののシフト量乗でスカラー倍することで、前記周期データの暗号文における前記データの周期的な配列をシフトする、
 付記1に記載の準同型巡回演算システム。
[付記4]
 前記進数rは、前記配列の周期nと暗号文空間サイズdを用いたとき、rn ≡ -1 mod dを満たす数である、付記3に記載の準同型巡回演算システム。
[付記5]
 前記暗号化装置は、前記データの周期的な配列にノイズベクトルを付加してから不定元の多項式の係数に格納して暗号化する、
 付記1から付記4のいずれか1つに記載の準同型巡回演算システム。
[付記6]
 前記暗号化装置は、前記データの周期的な配列を周期的に冗長させてから不定元の多項式の係数に格納して暗号化する、
 付記1から付記5のいずれか1つに記載の準同型巡回演算システム。
[付記7]
 前記周期的な配列は、評価用の値を代入することで評価を行いたい評価多項式の係数であり、
 前記暗号化装置は、前記評価多項式の係数を暗号化し、
 前記準同型巡回演算装置は、前記評価用の値を暗号化した暗号文に対して1シフトと前記暗号文自身の乗算とを繰り返し、前記評価多項式の係数の暗号文との内積演算をすることで、前記評価多項式に前記評価用の値を代入したものの暗号文を得る、
 付記1から付記5のいずれか1つに記載の準同型巡回演算システム。
[付記8]
 少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算装置であって、
 前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって生成した暗号文に前記不定元のシフト量乗を作用することにより、周期データの暗号文における前記データの周期的な配列をシフトする準同型巡回演算装置。
[付記9]
 少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算方法であって、
 前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって周期データの暗号文を生成するステップと、
 前記周期データの暗号文に前記不定元のシフト量乗を作用することによって前記周期データの暗号文における前記データの周期的な配列をシフトするステップと、
を備える準同型巡回演算方法。
[付記10]
 少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をすることをコンピュータに行わせるプログラムであって、
 前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって生成した暗号文に前記不定元のシフト量乗を作用することにより、周期データの暗号文における前記データの周期的な配列をシフトするプログラム。
 なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。さらに、上記引用した文献の各開示事項は、必要に応じ、本発明の趣旨に則り、本発明の開示の一部として、その一部又は全部を、本書の記載事項と組み合わせて用いることも、本願の開示事項に含まれるものと、みなされる。
 100 準同型巡回演算システム
 110 暗号化装置
 120 準同型巡回演算装置
 121 記憶部
 122 受信部
 123 演算部
 10 ハードウェア構成
 11 CPU(Central Processing Unit)
 12 主記憶装置
 13 補助記憶装置
 14 IF(Interface)部

Claims (10)

  1.  少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算システムであって、
     前記データの周期的な配列を不定元の多項式の係数に格納して暗号化して、周期データの暗号文を生成する暗号化装置と、
     前記周期データの暗号文に前記不定元のシフト量乗を作用することにより、前記周期データの暗号文における前記データの周期的な配列をシフトする準同型巡回演算装置と、
    を備える準同型巡回演算システム。
  2.  前記準同型巡回演算装置は、前記不定元のシフト量乗を暗号化したものと、前記周期データの暗号文とを準同型乗算することで、前記周期データの暗号文における前記データの周期的な配列をシフトする、
     請求項1に記載の準同型巡回演算システム。
  3.  前記準同型巡回演算装置は、前記周期データの暗号文を前記不定元に進数を代入したもののシフト量乗でスカラー倍することで、前記周期データの暗号文における前記データの周期的な配列をシフトする、
     請求項1に記載の準同型巡回演算システム。
  4.  前記進数rは、前記配列の周期nと暗号文空間サイズdを用いたとき、rn ≡ -1 mod dを満たす数である、請求項3に記載の準同型巡回演算システム。
  5.  前記暗号化装置は、前記データの周期的な配列にノイズベクトルを付加してから不定元の多項式の係数に格納して暗号化する、
     請求項1から請求項4のいずれか1つに記載の準同型巡回演算システム。
  6.  前記暗号化装置は、前記データの周期的な配列を周期的に冗長させてから不定元の多項式の係数に格納して暗号化する、
     請求項1から請求項5のいずれか1つに記載の準同型巡回演算システム。
  7.  前記周期的な配列は、評価用の値を代入することで評価を行いたい評価多項式の係数であり、
     前記暗号化装置は、前記評価多項式の係数を暗号化し、
     前記準同型巡回演算装置は、前記評価用の値を暗号化した暗号文に対して1シフトと前記暗号文自身の乗算とを繰り返し、前記評価多項式の係数の暗号文との内積演算をすることで、前記評価多項式に前記評価用の値を代入したものの暗号文を得る、
     請求項1から請求項5のいずれか1つに記載の準同型巡回演算システム。
  8.  少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算装置であって、
     前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって生成した暗号文に前記不定元のシフト量乗を作用することにより、周期データの暗号文における前記データの周期的な配列をシフトする準同型巡回演算装置。
  9.  少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をする準同型巡回演算方法であって、
     前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって周期データの暗号文を生成するステップと、
     前記周期データの暗号文に前記不定元のシフト量乗を作用することによって前記周期データの暗号文における前記データの周期的な配列をシフトするステップと、
    を備える準同型巡回演算方法。
  10.  少なくとも1回の乗算に関して準同型演算が定義される準同型暗号を用いてデータの周期的な配列の準同型巡回演算をすることをコンピュータに行わせるプログラムであって、
     前記データの周期的な配列を不定元の多項式の係数に格納して暗号化することによって生成した暗号文に前記不定元のシフト量乗を作用することにより、周期データの暗号文における前記データの周期的な配列をシフトするプログラム。
PCT/JP2021/028209 2021-07-29 2021-07-29 準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム WO2023007680A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/028209 WO2023007680A1 (ja) 2021-07-29 2021-07-29 準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム
JP2023537870A JPWO2023007680A1 (ja) 2021-07-29 2021-07-29

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/028209 WO2023007680A1 (ja) 2021-07-29 2021-07-29 準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム

Publications (1)

Publication Number Publication Date
WO2023007680A1 true WO2023007680A1 (ja) 2023-02-02

Family

ID=85086467

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/028209 WO2023007680A1 (ja) 2021-07-29 2021-07-29 準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム

Country Status (2)

Country Link
JP (1) JPWO2023007680A1 (ja)
WO (1) WO2023007680A1 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHILLOTTI ILARIA; GAMA NICOLAS; GEORGIEVA MARIYA; IZABACHèNE MALIKA: "TFHE: Fast Fully Homomorphic Encryption Over the Torus", JOURNAL OF CRYPTOLOGY, SPRINGER US, NEW YORK, vol. 33, no. 1, 25 April 2019 (2019-04-25), New York, pages 34 - 91, XP036987049, ISSN: 0933-2790, DOI: 10.1007/s00145-019-09319-x *
IMABAYASHI, HIROKI; ISHIMAKI, YU; UMAYABARA, AKIRA; SATO, HIROKI; YAMANA, HAYATO: "Streamline computation of secure frequent pattern mining by fully homomorphic encryption", TRANSACTIONS OF THE INFORMATION PROCESSING SOCIETY OF JAPAN (IPSJ), IPSJ, JP, vol. 10, no. 1, JP , pages 1 - 12, XP009543369, ISSN: 1882-7799, Retrieved from the Internet <URL:http://id.nii.ac.jp/1001/00178507/> *

Also Published As

Publication number Publication date
JPWO2023007680A1 (ja) 2023-02-02

Similar Documents

Publication Publication Date Title
Bajard et al. A full RNS variant of FV like somewhat homomorphic encryption schemes
JP6934963B2 (ja) データを暗号化する方法およびシステム
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
JP6083234B2 (ja) 暗号処理装置
Yasuda et al. Practical packing method in somewhat homomorphic encryption
JP6349841B2 (ja) 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
JP6260442B2 (ja) 情報処理方法及びプログラム
JP2016012111A (ja) 暗号処理方法、暗号処理装置、および暗号処理プログラム
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
Ding et al. Cryptanalysis of a public key cryptosystem based on Diophantine equations via weighted LLL reduction
Rathee et al. Faster PCA and linear regression through hypercubes in HElib
Wang et al. Proxy re-encryption schemes with key privacy from LWE
Huang et al. Secure matrix multiplication based on fully homomorphic encryption
Ishimaki et al. Non-interactive and fully output expressive private comparison
WO2023007680A1 (ja) 準同型巡回演算システム、準同型巡回演算装置、準同型巡回演算方法および準同型巡回演算プログラム
Sepehri et al. Secure and efficient data sharing with atribute-based proxy re-encryption scheme
Joye TFHE Public-Key Encryption Revisited
Löndahl et al. Improved algorithms for finding low-weight polynomial multiples in F _ 2^ x F 2 x and some cryptographic applications
Parra et al. A noiseless key-homomorphic PRF: application on distributed storage systems
Palamakumbura et al. Database query privacy using homomorphic encryptions
Zheng et al. Fully homomorphic encryption
Bhattacharyya et al. Post-quantum Cryptography: A Brief Survey of Classical Cryptosystems, Their Fallacy and the Advent of Post-quantum Cryptography with the Deep Insight into Hashed-Based Signature Scheme
Potey et al. Efficient homomorphic encryption using ECC-ElGamal scheme for cloud data
JP6228912B2 (ja) ブラインド秘密鍵発行システム、ブラインドデータ検索システム、これらの方法、鍵生成サーバ、復号装置及びプログラム
Lau et al. A new encryption scheme based on rank metric codes

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: 21951880

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18291341

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2023537870

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE