# US 2022/0286285 A1 · Accelerated execution of applications with fully homomorphically encrypted input data

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

- Number: US 2022/0286285 A1
- Document ID: US20220286285A1
- Status: Published application
- Kind: A1
- Application number: 17/615,869
- Filed: 2019-05-06
- Published: 2022-09-08
- Earliest claimed: 2019-05-06
- Assignees: Nitromia Ltd.
- Applicants: Nitromia Ltd.
- Inventors: Gera BIRAN
- Web page: https://patentgrep.com/patent/US20220286285A1

## CPC

- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/008: {involving homomorphic encryption}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method of executing a program segment operating on homomorphically encrypted data, the method comprising: providing a processing and memory circuitry (PMC) configured to execute, responsive to a respective program instruction, at least: i) a move operation, and ii) an operation of comparing two homomorphically encrypted input bits; executing, on the PMC, responsive to instructions of the program segment: i) a first operation of comparing two homomorphically encrypted bits to store a comparison result to a first memory location, and ii) a second operation that is configured to access the first memory location; thereby giving rise to branch-free execution of a program segment in accordance with the comparison result of homomorphically encrypted bits.

## Claims

### Claim 1

A method of executing a program segment operating on homomorphically encrypted data, the method comprising:
providing a processing and memory circuitry (PMC) configured to execute, responsive to a respective program instruction, at least:
i) a move operation, and
ii) an operation of comparing two homomorphically encrypted input bits, the operation giving rise to storage of an encrypted binary output digit to a memory location, in accordance with whether unencrypted bits corresponding to the encrypted input bits are equal;
executing, on the PMC, a responsive to instructions of the program segment:
i) a first operation of comparing two homomorphically encrypted bits to store a comparison result to a first memory location, and
ii) a second operation that is configured to access the first memory location;
thereby giving rise to branch-free execution of a program segment in accordance with the comparison result of homomorphically encrypted bits.

### Claim 2 (depends on 1)

The method of claim 1, wherein the operation of comparing is one-minus-XOR.

### Claim 3 (depends on 1)

The method of claim 1, wherein the bits are homomorphically encrypted in accordance with Dijk, Gentry, Halevi and Vaikuntanathan (DGHV) encryption.

### Claim 4 (depends on 1)

The method of claim 1, wherein the bits are homomorphically encrypted in accordance with Pailler encryption.

### Claim 5 (depends on 1)

The method of claim 1, wherein the bits are homomorphically encrypted in accordance with DGHV and subsequently encrypted with in accordance with Pailler.

### Claim 6 (depends on 1)

The method of claim 1, wherein the second operation is selected from a group comprising: the move operation, and the homomorphic comparison operation.

### Claim 7

A system of executing a program segment operating on homomorphically encrypted data, the system comprising:
a processing and memory circuitry (PMC) configured to execute, responsive to a respective program instruction, at least:
i) a move operation, and
ii) an operation of comparing two homomorphically encrypted input bits, the operation giving rise to storage of an encrypted binary output digit to a memory location, in accordance with whether unencrypted bits corresponding to the encrypted input bits are equal,
the PMC comprising a program segment, the program segment comprising instructions to:
i) execute a first operation of comparing two homomorphically encrypted bits to store a comparison result to a first memory location, and
ii) execute a second operation that is configured to access the first memory location;
thereby giving rise to branch-free execution of a program segment in accordance with the comparison result of homomorphically encrypted bits.

### Claim 8 (depends on 7)

The system of claim 7,
wherein the program segment comprises further instructions to:
i) move an encrypted 1 to a memory location denoted by a first register;
ii) move an encrypted 0 to a memory location denoted by a second register; and
iii) move the data contained in the memory location denoted by the second register to a comparison result memory location.

### Claim 9

A computer program product comprising a computer readable storage medium containing program instructions, which program instructions when read by a processor, cause the processor to perform a method of executing a software program operating on homomorphically encrypted data, the method comprising:
i) executing a first operation of comparing two homomorphically encrypted bits to store a comparison result to a first memory location, and
ii) executing a second operation that is configured to access the first memory location;
thereby giving rise to branch-free execution of a program segment in accordance with the comparison result of homomorphically encrypted bits,
wherein the executing is performed on a MOV machine emulation configured to execute, responsive to a respective MOV machine program instruction of a MOV machine program segment, at least:
i) a move operation, and
ii) an operation of comparing two homomorphically encrypted input bits, the operation giving rise to storage of an encrypted binary output digit to a memory location, in accordance with whether unencrypted bits corresponding to the encrypted input bits are equal.
