# US 10,375,070 B2 · Generating cryptographic function parameters from compact source code

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

- Number: US 10,375,070 B2
- Document ID: US10375070B2
- Status: Granted
- Kind: B2
- Application number: 14/691,337
- Filed: 2015-04-20
- Published: 2017-03-02
- Granted: 2019-08-06
- Earliest claimed: 2015-04-20
- Assignees: Certicom Corp.
- Applicants: Certicom Corp.
- Inventors: Daniel Richard L. Brown
- Web page: https://patentgrep.com/patent/US10375070B2

## CPC

- H04L 63/10: {for controlling access to devices or network resources}
- G06F 7/58: Random or pseudo-random number generators
- G06F 21/602: {Providing cryptographic facilities or services}
- G09C 5/00: Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
- H04L 9/0662: {with particular pseudorandom sequence generator}
- H04L 9/3006: {underlying computational problems or public-key parameters}
- H04L 9/3066: {involving algebraic varieties, e.g. elliptic or hyper-elliptic curves}
- H04L 63/126: {the source of the received data}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G09C: CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY

## Abstract

Methods, systems, and computer programs for generating cryptographic function parameters are described. In some examples, source code that defines seed information and a pseudorandom function is accessed. A parameter for a cryptographic function by operation of one or more data processors is generated. The parameter is generated from the seed information and the pseudorandom function. The parameter has a larger size in memory than the source code that defines the seed information and the pseudorandom function.

## Claims

### Claim 1

A cryptography method comprising:
accessing a source code that defines seed information and a pseudorandom function, wherein the source code comprises a programming language that assembles or compiles into a machine language executable by one or more data processors, the source code has a complexity lower than a predefined threshold, the complexity measured based on a code length of the source code;
generating a parameter for a cryptographic function by operation of the one or more data processors, wherein the cryptographic function comprises an elliptic curve function, the parameter comprises a constant for the elliptic curve function, the parameter is generated from the seed information and the pseudorandom function, and the parameter is a number that has a larger size in memory than the source code that defines the seed information and the pseudorandom function;
encrypting data using the generated parameter and the cryptographic function; and
transmitting the encrypted data.

### Claim 2 (depends on 1)

The method of claim 1, wherein generating the parameter comprises deriving the parameter from one or more outputs produced by operating the pseudorandom function seeded by the seed information.

### Claim 3 (depends on 1)

The method of claim 1, wherein the source code comprises a minimal-size source code for generating the parameter for the cryptographic function.

### Claim 4 (depends on 1)

The method of claim 1, further comprising using the parameter to perform cryptographic operations according to a cryptographic communication protocol.

### Claim 5 (depends on 1)

The method of claim 1, comprising generating a full set of parameters for the cryptographic function, the full set of parameters having a larger size in memory than the source code that defines the seed information and the pseudorandom function.

### Claim 6 (depends on 5)

The method of claim 5, wherein the source code comprises an incompressible code for generating a full set of parameters for the cryptographic function.

### Claim 7

A computing system comprising:
memory storing a source code that defines seed information and a pseudorandom function, wherein the source code comprises a programming language that assembles or compiles into a machine language executable by one or more data processors, the source code has a complexity lower than a predefined threshold, the complexity measured based on a code length of the source code; and
the one or more data processors configured to:
generate, from the seed information and the pseudorandom function, a parameter for a cryptographic function, wherein the cryptographic function comprises an elliptic curve function, the parameter comprises a constant for the elliptic curve function, the parameter is a number that has a larger size in memory than the source code that defines the seed information and the pseudorandom function;
encrypt data using the generated parameter and the cryptographic function; and
transmit the encrypted data.

### Claim 8 (depends on 7)

The system of claim 7, wherein generating the parameter comprises deriving the parameter from one or more outputs produced by operating the pseudorandom function seeded by the seed information.

### Claim 9 (depends on 7)

The system of claim 7, wherein the source code comprises a minimal-size source code for generating the parameter for the cryptographic function.

### Claim 10 (depends on 7)

The system of claim 7, further comprising a terminal configured to use the parameter in a cryptographic communication protocol.

### Claim 11 (depends on 7)

The system of claim 7, the one or more data processors configured to generate a full set of parameter for the cryptographic function, the full set of parameter having a larger size in memory than the source code that defines the seed information and the pseudorandom function.

### Claim 12

A non-transitory computer-readable medium storing instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising:
accessing a source code that defines seed information and a pseudorandom function, wherein the source code comprises a programming language that assembles or compiles into a machine language executable by one or more data processors, the source code has a complexity lower than a predefined threshold, the complexity measured based on a code length of the source code;
generating a parameter for a cryptographic function by operation of the one or more data processors, wherein the cryptographic function comprises an elliptic curve function, the parameter comprises a constant for the elliptic curve function, the parameter is generated from the seed information and the pseudorandom function, and the parameter is a number that has a larger size in memory than the source code that defines the seed information and the pseudorandom function;
encrypting data using the generated parameter and the cryptographic function; and
transmitting the encrypted data.

### Claim 13 (depends on 12)

The computer-readable medium of claim 12, wherein generating the parameter comprises deriving the parameter from one or more outputs produced by operating the pseudorandom function seeded by the seed information.

### Claim 14 (depends on 12)

The computer-readable medium of claim 12, wherein the source code comprises a minimal-size source code for generating the parameter for the cryptographic function.

### Claim 15 (depends on 12)

The computer-readable medium of claim 12, the operations further comprising using the parameter in a cryptographic communication protocol.

### Claim 16 (depends on 12)

The computer-readable medium of claim 12, the operations comprising generating a full set of parameters for the cryptographic function, the full set of parameters having a larger size in memory than the source code that defines the seed information and the pseudorandom function.
