Patent ID: 9083526
Filing Date: 2015-07-14
Classification: H04L

Abstract:
1. A non-transitory computer-readable storage medium storing program instructions, execution of the program instructions resulting in operations comprising: transmitting by a requestor a query to a computer system; receiving at the computer system the query; accessing, at the computer system and from a memory of the computer system, a plurality of ciphertexts, where each of the input ciphertexts comprises data encrypted in accordance with an encryption scheme, where the encryption scheme uses a public key and a secret key and includes an encryption function, a decryption function, at least one operation function and a refresh function, where the encryption function operates to obtain ciphertext by encrypting data using the public key, where the decryption function operates using the secret key to decrypt ciphertext for data encrypted using the public key and obtain the data, where the at least one operation function receives at least two given ciphertexts and uses the public key to perform at least one operation on the at least two given ciphertexts and obtain a resulting ciphertext, where the refresh function operates to prevent growth of a magnitude of noise for a provided ciphertext while reducing a modulus of the provided ciphertext without using the secret key, where the refresh function utilizes a modulus switching technique that comprises transforming the provided ciphertext c modulo q into another ciphertext c′ modulo p while preserving correctness, where the modulus switching technique includes scaling by p/q and rounding, where p<q, where the encryption scheme enables homomorphic operations to be performed on ciphertexts encoded and operated on in accordance with the encryption scheme; retrieving, by the computer system and from the memory, one or more results corresponding to and satisfying the query by performing homomorphic operations using at least the plurality of input ciphertexts at least by: sending by the computer system the one or more results of the evaluation of the circuit to the requestor; and receiving by the requestor the one or more results and decrypting by the requestor the one or more results to determine an answer to the query.