Encryption processing apparatus and encryption processing method
An encryption processing apparatus processes a ciphertext. The ciphertext is a fully homomorphic ciphertext that has, as a plaintext associated with an integer, a value obtained by adding an error with a predetermined variance to a predetermined value and that is able to be subjected to a predetermined operation between integers without being decrypted. The apparatus includes a processor that performs a process including a calculation process of performing a scalar remainder operation on a ciphertext of a dividend based on a first polynomial obtained from a plaintext of a divisor to obtain a new ciphertext corresponding to a remainder.
1 . An encryption processing apparatus that processes a ciphertext,
the ciphertext being a fully homomorphic ciphertext that has, as a plaintext associated with an integer, a value obtained by adding an error with a predetermined variance to a predetermined value and that is able to be subjected to a predetermined operation between integers without being decrypted,
the apparatus comprising a processor that performs a process and a storage device, the process including
preparing a first polynomial obtained from a plaintext of a divisor and storing the prepared first polynomial in the storage device,
performing a calculation process of performing a scalar remainder operation by rotating coefficients of the first polynomial based on a ciphertext of a dividend to obtain a third polynomial and extracting a predetermined coefficient of the third polynomial to obtain a new ciphertext corresponding to a remainder, and
performing the predetermined operation, using the new ciphertext as input, including performing fuzzy authentication or fuzzy search.
2 . The encryption processing apparatus according to claim 1 , wherein the process includes preparing a second polynomial obtained from a plaintext of a divisor and storing the second polynomial in the storage device,
wherein the calculation process performs scalar division by rotating coefficients of the second polynomial based on the ciphertext of the dividend to obtain a fourth polynomial and extracting a predetermined coefficient of the fourth polynomial to obtain a new ciphertext corresponding to a quotient.
3 . The encryption processing apparatus according to claim 2 , wherein the process performed by the processor performs, as a predetermined operation, a multiple-precision operation on a first ciphertext corresponding to a first integer and a second ciphertext corresponding to a second integer,
the first ciphertext has ciphertexts respectively obtained by encrypting results of division of the first integer into a predetermined number of multiple-precision fields,
the second ciphertext has ciphertexts respectively obtained by encrypting results of division of the second integer into a predetermined number of multiple-precision fields, and
the process performed by the processor performs the multiple-precision operation by performing a homomorphic operation between corresponding ciphertexts of the first ciphertext and the second ciphertext.
4 . The encryption processing apparatus according to claim 3 , wherein the calculation process performs a homomorphic operation on ciphertexts of the same multiple-precision field of the first and second ciphertexts and a third ciphertext to obtain a fourth ciphertext,
performs the scalar division on the fourth ciphertext to obtain a new ciphertext as the third ciphertext,
performs the scalar remainder operation on the fourth ciphertext to obtain a fifth ciphertext, and outputs a string of fifth ciphertexts obtained when the homomorphic operation is repeated a predetermined number of times, as a ciphertext corresponding to a multiple-precision operation result.
5 . The encryption processing apparatus according to claim 3 , wherein the calculation process performs a process of reducing number of coefficients of a ciphertext, prior to obtaining a new ciphertext by applying the predetermined polynomial to an input ciphertext.
6 . The encryption processing apparatus according to claim 3 , wherein the process performed by the processor performs the predetermined operation to process a query based on an input ciphertext to an encrypted database.
7 . The encryption processing apparatus according to claim 3 , wherein the process performed by the processor performs the predetermined operation to obtain an inverse element by extended Euclidean algorithm while keeping an input ciphertext encrypted.
8 . The encryption processing apparatus according to claim 3 , wherein the process performed by the processor performs the predetermined operation to process a content of an input ciphertext by advanced cryptography while keeping the input ciphertext encrypted.
9 . The encryption processing apparatus according to claim 1 , wherein the processor is an Application Specific Integrated Circuit (ASIC).
10 . An encryption processing method, executed by a processor, of processing a ciphertext,
the ciphertext being a fully homomorphic ciphertext that has, as a plaintext associated with an integer, a value obtained by adding an error with a predetermined variance to a predetermined value and that is able to be subjected to a predetermined operation between integers without being decrypted,
the method comprising a process of
preparing a first polynomial obtained from a plaintext of a divisor and storing the prepared first polynomial in a storage device,
performing a calculation process of performing a scalar remainder operation by rotating coefficients of the first polynomial based on a ciphertext of a dividend to obtain a third polynomial and extracting a predetermined coefficient of the third polynomial to obtain a new ciphertext corresponding to a remainder, and
performing the predetermined operation, using the new ciphertext as input, including performing fuzzy authentication or fuzzy search.
11 . A non-transitory computer-readable recording medium storing a program for causing a processor to perform an encryption process of processing a ciphertext, the ciphertext being a fully homomorphic ciphertext that has, as a plaintext associated with an integer, a value obtained by adding an error with a predetermined variance to a predetermined value and that is able to be subjected to a predetermined operation between integers without being decrypted,
the encryption process including a process of preparing a first polynomial obtained from a plaintext of a divisor and storing the prepared first polynomial in a storage device, and performing a calculation process of performing a scalar remainder operation by rotating coefficients of the first polynomial based on a ciphertext of a dividend to obtain a third polynomial and extracting a predetermined coefficient of the third polynomial to obtain a new ciphertext corresponding to a remainder,
and
performing the predetermined operation, using the new ciphertext as input, including performing fuzzy authentication or fuzzy search.