# US 9,436,835 B1 · Homomorphic encryption in computing systems and environments

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,835 B1
- Document ID: US9436835B1
- Status: Granted
- Kind: B1
- Application number: 13/734,965
- Filed: 2013-01-05
- Granted: 2016-09-06
- Earliest claimed: 2012-01-05
- Assignees: Gokay Saldamli
- Applicants: Gokay Saldamli
- Inventors: Gokay Saldamli
- Web page: https://patentgrep.com/patent/US9436835B1

## CPC

- G06F 21/602: {Providing cryptographic facilities or services}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A transformation function that satisfies at least linearity and convolution can be used to encrypt data. The transformation function can, for example, be a DFT with one or more evaluation points that can be kept secret for encryption. The transformation function can effectively serve as a transform map and can be used to achieve fully homographic encryption in a system where encrypted data can be manipulated by applying one or more operations and the resulting encrypted data can be decrypted by applying the inverse of the transformation function and/or transformation map. A transformation function that satisfies at least linearity and convolution can be used for various applications, including, for example, private/public key decryption schemes, a signature schemes, database query and search schemes, as well as various applications of homomorphic operations.

## Claims

### Claim 1

A method, implemented at least partly by an encrypting device, for encrypting data, wherein the method comprises:
obtaining a transformation function that satisfies at least linearity and convolution; and
applying the transformation function, at least to first data, to generate and store, in a non-transitory computer readable storage medium, at least encrypted first data for the first data, wherein the transformation function satisfies a cyclic convolution modulo polynomial including one or more evaluation points as its roots,
using the one or more evaluation points as one or more secret keys for encrypting the first data;
inserting at least one secret or sensitive value at least into one component of a data signal; and;
blinding the secret or sensitive value by adding blinding data into at least one component of a data signal for storing in the non-transitory computer readable storage medium.

### Claim 2 (depends on 1)

The method of claim 1, wherein the transformation function includes a transformation map and the first data includes one or more components and/or coordinates, and the encrypted first data includes one or more components and/or coordinates for the first data.

### Claim 3 (depends on 1)

The method of claim 1, wherein the method further comprises:
applying at least one operation to the encrypted first data at least once to generate and store an encrypted modified data in the non-transitory computer readable storage medium as an encrypted result of the at least one operation applied to the first data, wherein the encrypted modified data can be decrypted by applying an inverse of the transformation function to obtain the result of the at least one operation applied to the first data.

### Claim 4 (depends on 3)

The method of claim 3, wherein the at least one operation includes one or more of the following: an algebraic operation, at least one addition, at least one subtraction, at least one convolution and at least one component-wise multiplication.

### Claim 5 (depends on 1)

The method of claim 1, wherein the method further comprises:
dividing the at least encrypted first data into two or more encrypted parts;
sending each of the encrypted parts to a different device for performing the at least one operation on the encrypted part to get an encrypted result part;
obtaining two or more encrypted result parts;
combining the two or more encrypted result parts to get an encrypted complete result; and
applying the inverse function to the encrypted complete result to get a decrypted result.

### Claim 6 (depends on 1)

The method of claim 1, wherein the transformation function is defined over an algebraic structure that satisfies at least linearity and convolution with respect to one or more algebraic operation.

### Claim 7 (depends on 6)

The method of claim 6, wherein the algebraic structure includes one or more of the following: a ring, a polynomial ring, a group, and a field.

### Claim 8 (depends on 1)

The method of claim 1, wherein the transformation function is expressed as one or more of the following: a discrete Fourier Transform (DFT), (P) NTT, ((Pseudo) Number theoretical transform), DHT (discrete Hartley transform), DCT (discrete cosine transform), multi-dimensional transforms, evaluation map and Lagrange transform).

### Claim 9 (depends on 1)

The method of claim 1, wherein the blinding data include random data that is randomly generated.

### Claim 10 (depends on 1)

The method of claim 1, wherein the method further comprises:
using one or more evaluation points associated with the transformation function and one or more other values as one or more private keys in an encryption scheme; and
using at least one encrypted data and modulus as one or more public keys in the encryption scheme.

### Claim 11 (depends on 10)

The method of claim 10, wherein the method further comprises performing a public key encryption scheme by:
using the published public key to encrypt a message; and
performing one or more wrapping functions on the message to encrypt the message.

### Claim 12 (depends on 1)

The method of claim 1, wherein the method further comprises:
using one or more coefficients of the transformation function to generate a signature.

### Claim 13 (depends on 12)

The method of claim 12, wherein at least one part of the signature includes: (i) an encrypted digest obtained by using a digest of a message that is inserted in at least one coefficients of the data to encrypted, and (ii) value obtained by performing one or more calculations on the data to be encrypted.

### Claim 14 (depends on 1)

The method of claim 1, wherein the method further comprises searching or querying encrypted or modified data in an encrypted database by:
providing an encrypted value for a value to be searched in the encrypted database;
comparing the encrypted value with encrypted values stored in the encrypted database; and
returning one or more matched entries of the encrypted database associated with one or more matching encrypted values stored in the data encrypted.

### Claim 15

An encrypting system that includes one or more processors and memory configured to:
obtain a transformation function that satisfies at least linearity and convolution; and
apply the transformation function, at least to first data, to generate and store, in a non-transitory computer readable storage medium, at least encrypted first data for the first data wherein the transformation function satisfies a cyclic convolution modulo polynomial including one or more evaluation points as its roots,
uses the one or more evaluation points as one or more secret keys for encrypting the first data;
inserts at least one secret or sensitive value at least into one component of a data signal; and;
blinding the secret or sensitive value by adding blinding data into at least one component of a data signal for storing in the non-transitory computer readable storage medium.

### Claim 16

A non-transitory computer readable storage medium storing at least executable code for encrypting data in encrypting system operable to execute executable code, wherein the executable code when executed:
obtains a transformation function that satisfies at least linearity and convolution; and
applying the transformation function, at least to first data, to generate and store, in a non-transitory computer readable storage medium, at least encrypted first data for the first data wherein the transformation function satisfies a cyclic convolution modulo polynomial including one or more evaluation points as its roots,
uses the one or more evaluation points as one or more secret keys for encrypting the first data;
inserts at least one secret or sensitive value at least into one component of a data signal; and;
blinding the secret or sensitive value by adding blinding data into at least one component of a data signal for storing in the non-transitory computer readable storage medium.

### Claim 17 (depends on 1)

The non-transitory computer readable of claim 1, wherein the transformation function includes a transformation map and the first data includes one or more components and/or coordinates, and the encrypted first data includes one or more components and/or coordinates for the first data.

### Claim 18 (depends on 15)

The computing system of claim 15, wherein the transformation function includes a transformation map and the first data includes one or more components and/or coordinates, and the encrypted first data includes one or more components and/or coordinates for the first data.
