# US 12,001,525 B1 · Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment

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

- Number: US 12,001,525 B1
- Document ID: US12001525B1
- Status: Granted
- Kind: B1
- Application number: 17/706,661
- Filed: 2022-03-29
- Granted: 2024-06-04
- Earliest claimed: 2018-06-08
- Assignees: Gsfm LLC
- Applicants: Gsfm LLC
- Inventors: Francois Jacques Malassenet; Glenn Daniel Sidle
- Web page: https://patentgrep.com/patent/US12001525B1

## CPC

- G06F 21/14: against software analysis or reverse engineering, e.g. by obfuscation
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 9/45516: {Runtime code conversion or optimisation}
- G06F 21/52: during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow}
- G06F 21/75: by inhibiting the analysis of circuitry or operation
- H04L 9/002: {Countermeasures against attacks on cryptographic mechanisms (network architectures or network communication protocols for protection against malicious traffic H04L63/1441)}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- H04L 2209/16: Obfuscation or hiding, e.g. involving white box
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computer implemented method is disclosed for obfuscating an algorithm. The computer-implemented method includes (1) receiving ciphertext input data, and (2) executing obfuscated program instructions using the ciphertext input data and an obfuscation key. The ciphertext input data is based on plaintext input data encrypted using an input encryption key. The obfuscated program instructions are configured for concealing initial program instructions. The initial program instructions are configured for (1) receiving the plaintext input data, (2) providing plaintext output data based on an algorithm, and (3) providing ciphertext output data. The ciphertext output data is configured for decryption to provide the plaintext output data.

## Claims

### Claim 1

A computer implemented method comprising:
receiving one or more plaintext program instructions that implement an algorithm having fixed plaintext coefficients; and
receiving one or more program instruction encryption keys, wherein:
the one or more plaintext program instructions are configured for:
receiving one or more plaintext input data; and
providing one or more plaintext output data based on the algorithm;
the one or more program instruction encryption keys are configured for obfuscating and encrypting the plaintext program instructions into one or more obfuscated and encrypted program instructions for securing the algorithm;
the obfuscated and encrypted instructions are configured for:
receiving one or more ciphertext input data; and
providing one or more ciphertext output data;
the one or more ciphertext input data is an encrypted version of the one or more plaintext input data; and
the one or more cipher text output data is an encrypted version of the one or more plaintext output data.

### Claim 2 (depends on 1)

The computer implemented method of claim 1 further comprising one or more first coefficient encryption keys, wherein the one or more first coefficients encryption keys are configured to provide one or more first ciphertext coefficients.

### Claim 3 (depends on 2)

The computer implemented method of claim 2, wherein the one or more first coefficients encryption keys are transmitted from a server using an authentication and encryption protocol.

### Claim 4 (depends on 2)

The computer implemented method of claim 2 further comprising receiving one or more second coefficient encryption keys, wherein the one or more second coefficients encryption keys are configured to provide a second ciphertext coefficients from the first ciphertext coefficients.

### Claim 5 (depends on 4)

The computer implemented method of claim 4, wherein the one or more second coefficients encryption keys are transmitted from a server using an authentication and encryption protocol.

### Claim 6 (depends on 1)

The computer implemented method of claim 1, wherein the obfuscated and encrypted program instructions appear identical.

### Claim 7 (depends on 1)

The computer implemented method of claim 1 further comprising receiving one or more input data encryption keys, wherein the input data encryption keys are configured to secure the one or more plaintext input data and create the one or more ciphertext input data.

### Claim 8 (depends on 1)

The computer implemented method of claim 1, wherein the one or more ciphertext output data is configured to be decrypted into the one or more plaintext output data using one or more output decryption keys.

### Claim 9 (depends on 1)

The computer implemented method of claim 1, wherein the one or more plaintext input data is configured to be encrypted into the one or more ciphertext input data using one or more input encryption keys.

### Claim 10 (depends on 1)

The computer implemented method of claim 1, wherein the obfuscated and encrypted computer implemented method is performed on at least one of linear space, a cyclic group, a polynomial ring, and a polynomial ring over a finite field.

### Claim 11 (depends on 1)

The computer implemented method of claim 1, wherein the computer implemented method is performed by a plurality of processing units.

### Claim 12 (depends on 1)

The computer implemented method of claim 1, wherein the computer implemented method is performed in a multiparty computation configuration.

### Claim 13 (depends on 1)

The computer implemented method of claim 1, wherein at least one of the one or more program instruction encryption keys expires based on at least one of a number of uses, a time of use, and an erroneous authentication.

### Claim 14 (depends on 1)

The computer implemented method of claim 1, wherein the ciphertext output data is provided without decrypting the ciphertext input data.

### Claim 15 (depends on 14)

The computer implemented method of claim 14, wherein the ciphertext output data is provided without directly encrypting the plaintext output data.

### Claim 16 (depends on 1)

The computer implemented method of claim 1, wherein at least one of the obfuscated and encrypted program instructions integrates at least one of a preprocess step and a post process step.

### Claim 17 (depends on 1)

The computer implemented method of claim 1, wherein computer implemented method is implemented on a client device.

### Claim 18 (depends on 17)

The computer implemented method of claim 17, wherein the client device is at least one of a personal computer, a workstation, a laptop, a tablet, a smartphone, a smart watch, and an Internet-of-Things device.

### Claim 19

A computing device comprising:
a memory; and
at least one processor configured to perform a method, the method comprising:
receiving one or more plaintext program instructions that implement an algorithm having fixed plaintext coefficients; and
receiving one or more program instruction encryption keys, wherein:
the one or more plaintext program instructions are configured for:
receiving one or more plaintext input data; and
providing one or more plaintext output data based on the algorithm;
the one or more program instruction encryption keys are configured for obfuscating and encrypting the plaintext program instructions into one or more obfuscated and encrypted program instructions for securing the algorithm;
the obfuscated and encrypted instructions are configured for:
receiving one or more ciphertext input data; and
providing one or more ciphertext output data;
the one or more ciphertext input data is encrypted version of the one or more plaintext input data; and
the one or more cipher text output data is an encrypted version of the one or more plaintext output data.

### Claim 20

A non-transitory computer-readable storage medium, the non-transitory computer-readable storage medium storing computer instructions to be implemented on at least one computing device including at least one processor, the computer instructions when executed by the at least one processor cause the at least one computing device to perform a method, the method comprising:
receiving one or more plaintext program instructions that implement an algorithm having fixed plaintext coefficients; and
receiving one or more program instruction encryption keys, wherein:
the one or more plaintext program instructions are configured for:
receiving one or more plaintext input data; and
providing one or more plaintext output data based on the algorithm;
the one or more program instruction encryption keys are configured for obfuscating and encrypting the plaintext program instructions into one or more obfuscated and encrypted program instructions for securing the algorithm;
the obfuscated and encrypted instructions are configured for:
receiving one or more ciphertext input data; and
providing one or more ciphertext output data;
the one or more ciphertext input data is encrypted version of the one or more plaintext input data; and
the one or more cipher text output data is an encrypted version of the one or more plaintext output data.
