# US 12,008,146 B2 · Code-based signatures for secure programs

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

- Number: US 12,008,146 B2
- Document ID: US12008146B2
- Status: Granted
- Kind: B2
- Application number: 17/219,263
- Filed: 2021-03-31
- Published: 2022-10-06
- Granted: 2024-06-11
- Earliest claimed: 2021-03-31
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Vipin Singh Sehrawat
- Web page: https://patentgrep.com/patent/US12008146B2

## CPC

- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-implemented method receives at least two unique versions of program code of a program, generates a code-based key for each unique version of the program code, generates a code-based signature for each unique version of the program using a bi-homomorphic pseudorandom function selected from a family of bi-homomorphic pseudorandom functions. Each code-based signature is generated by the selected bi-homomorphic pseudorandom function based on the corresponding code-based key. Each generated code-based signature for each unique version of the program code is incorporated into the program code of the corresponding unique version of the program.

## Claims

### Claim 1

A computing-processor-implemented method comprising:
receiving at least two unique versions of program code of a program;
generating a code-based key for each unique version of the program code; and
generating a code-based signature for each unique version of the program using a bi-homomorphic pseudorandom function selected from a family of bi-homomorphic pseudorandom functions, each code-based signature being generated by the selected bi-homomorphic pseudorandom function based on the corresponding code-based key.

### Claim 2 (depends on 1)

The computing-processor-implemented method of claim 1, further comprising:
incorporating the generated code-based signature for each unique version of the program code into the program code of the corresponding unique version of the program.

### Claim 3 (depends on 1)

The computing-processor-implemented method of claim 1, wherein the generated code-based signatures are verifiable using any bi-homomorphic pseudorandom function selected from the family based on a difference of the code-based keys derived from the program code of the unique versions of the program.

### Claim 4 (depends on 1)

The computing-processor-implemented method of claim 1, wherein the at least two unique versions of the program code of the program are structurally different from each other.

### Claim 5 (depends on 1)

The computing-processor-implemented method of claim 1, wherein the bi-homomorphic pseudorandom function is key homomorphic and input homomorphic.

### Claim 6 (depends on 5)

The computing-processor-implemented method of claim 5, wherein the bi-homomorphic pseudorandom function is fully key homomorphic and partially input homomorphic.

### Claim 7 (depends on 1)

The computing-processor-implemented method of claim 1, wherein the generated code-based signatures are verifiable using any bi-homomorphic pseudorandom function selected from the family that is used to generate the code-based signatures.

### Claim 8 (depends on 1)

The computing-processor-implemented method of claim 1, wherein the generated code-based signatures are verifiable using code-based keys that are used to generate the code-based signatures.

### Claim 9

A system comprising:
one or more hardware processors;
a key generator executable by the one or more hardware processors and configured to generating a code-based key for each unique version of at least two unique versions of program code of a program; and
a signature generator executable by the one or more hardware processors and configured to generate a code-based signature for each unique version of the program using a bi-homomorphic pseudorandom function selected from a family of bi-homomorphic pseudorandom functions, each code-based signature being generated by the selected bi-homomorphic pseudorandom function based on the corresponding code-based key.

### Claim 10 (depends on 9)

The system of claim 9, further comprising:
a signature incorporator executable by the one or more hardware processors and configured to incorporate the generated code-based signature for each unique version of the program code into the program code of the corresponding unique version of the program.

### Claim 11 (depends on 9)

The system of claim 9, wherein the generated signatures are verifiable using any bi-homomorphic pseudorandom function selected from the family based on a difference of the code-based keys derived from the program code of the unique versions of the program.

### Claim 12 (depends on 9)

The system of claim 9, wherein the at least two unique versions of the program code of the program are structurally different from each other.

### Claim 13 (depends on 9)

The system of claim 9, wherein the generated code-based signatures are verifiable using any bi-homomorphic pseudorandom function selected from the family that is used to generate the code-based signatures.

### Claim 14 (depends on 9)

The system of claim 9, wherein the generated code-based signatures are verifiable using code-based keys that are used to generate the code-based signatures.

### Claim 15

One or more tangible processor-readable storage media embodied with instructions for executing on one or more processors and circuits of a computing device a process comprising:
receiving at least two unique versions of program code of a program;
generating a code-based key for each unique version of the program code; and
generating a code-based signature for each unique version of the program using a bi-homomorphic pseudorandom function selected from a family of bi-homomorphic pseudorandom functions, each code-based signature being generated by the selected bi-homomorphic pseudorandom function based on the corresponding code-based key.

### Claim 16 (depends on 15)

The one or more tangible processor-readable storage media of claim 15 wherein the process further comprises:
incorporating the generated code-based signature for each unique version of the program code into the program code of the corresponding unique version of the program.

### Claim 17 (depends on 15)

The one or more tangible processor-readable storage media of claim 15 wherein the generated signatures are verifiable using any bi-homomorphic pseudorandom function selected from the family based on a difference of the code-based keys derived from the program code of the unique versions of the program.

### Claim 18 (depends on 15)

The one or more tangible processor-readable storage media of claim 15 wherein the at least two unique versions of the program code of the program are structurally different from each other.

### Claim 19 (depends on 15)

The one or more tangible processor-readable storage media of claim 15 wherein the generated code-based signatures are verifiable using any bi-homomorphic pseudorandom function selected from the family that is used to generate the code-based signatures.

### Claim 20 (depends on 15)

The one or more tangible processor-readable storage media of claim 15 wherein the generated code-based signatures are verifiable using code-based keys that are used to generate the code-based signatures.
