# US 11,444,760 B2 · System, method, and apparatus for obfuscating device operations

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

- Number: US 11,444,760 B2
- Document ID: US11444760B2
- Status: Granted
- Kind: B2
- Application number: 15/984,213
- Filed: 2018-05-18
- Published: 2018-11-29
- Granted: 2022-09-13
- Earliest claimed: 2017-05-26
- Assignees: Microchip Technology Incorporated
- Applicants: Microchip Technology Incorporated
- Inventors: Huiming Chen
- Web page: https://patentgrep.com/patent/US11444760B2

## CPC

- H04L 9/0869: {involving random numbers or seeds}
- G06F 7/588: {Random number generators, i.e. based on natural stochastic processes}
- H04L 9/003: {for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]}
- H04L 9/005: {for timing attacks}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 2209/16: Obfuscation or hiding, e.g. involving white box
- 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)

## Abstract

The embodiments of the present disclosure relate generally to systems and methods for obfuscating the operation of a device, in particular, timing and power consumption information.

## Claims

### Claim 1

A system comprising:
a first hardware processor to perform a cryptographic process to generate a private cryptographic key for one or more of encryption or decryption; and
a second hardware processor coupled to the first hardware processor, the second hardware processor to:
obtain one or more pre-calculated values of cryptographic parameters representing one or more inputs to a modular inverse calculation;
modify the one or more pre-calculated values of cryptographic parameters utilizing a randomly generated number;
initiate the cryptographic process by providing to the first hardware processor the modified one or more pre-calculated values of cryptographic parameters as an input of the cryptographic process; and
receive the generated private cryptographic key for one or more of encryption or decryption at least partially responsive to the first hardware processor executing the cryptographic process utilizing the modified one or more pre-calculated values of cryptographic parameters provided as the input of the cryptographic process.

### Claim 2 (depends on 1)

The system of claim 1, wherein the first hardware processor is arranged such that one or more characteristics exhibited substantially while executing the cryptographic process are externally observable, and wherein the one or more characteristics include at least one of power consumption, timing information, magnetic field information, heat signature information, or a combination or sub-combination thereof.

### Claim 3 (depends on 1)

The system of claim 1, wherein the cryptographic process includes calculating a greatest common divisor of two of the modified one or more pre-calculated values of cryptographic parameters.

### Claim 4 (depends on 1)

The system of claim 1, wherein the cryptographic process is a modular inverse calculation.

### Claim 5 (depends on 4)

The system of claim 4, wherein the modular inverse calculation includes an Extended Euclidean Greatest Common Divisor (XGCD) technique.

### Claim 6 (depends on 5)

The system of claim 5, wherein the XGCD technique includes a secure binary XGCD technique.

### Claim 7 (depends on 1)

The system of claim 1, comprising a random number generator.

### Claim 8 (depends on 1)

The system of claim 1, comprising: a memory to store the one or more pre-calculated values of cryptographic parameters.

### Claim 9 (depends on 1)

The system of claim 1, wherein the second hardware processor to:
further modify one or more pre-calculated values of cryptographic parameters utilizing a further randomly generated number; and
further initiate the cryptographic process by further providing to the first hardware processor the further modified one or more pre-calculated values of cryptographic parameters as a further input of the cryptographic process,
wherein the further modified one or more pre-calculated values of cryptographic parameters are different than the modified one or more pre-calculated values of cryptographic parameters.

### Claim 10 (depends on 9)

The system of claim 9, wherein the second hardware processor to:
receive the generated private cryptographic key for one or more of encryption or decryption at least partially responsive to the first hardware processor executing the cryptographic process utilizing the further modified one or more pre-calculated values of cryptographic parameters further provided as the further input of the cryptographic process.

### Claim 11

A method comprising:
obtaining, at a second processor, one or more pre-calculated values of cryptographic parameters representing one or more inputs to a modular inverse calculation and having been modified utilizing a randomly generated number;
providing the one or more pre-calculated values of cryptographic parameters to a first processor as an input of a cryptographic process to initiate performance of the cryptographic process at the first processor; and
receiving a private cryptographic key for one or more of encryption or decryption at least partially responsive to the first processor executing the cryptographic process utilizing the input of one or more pre-calculated values of cryptographic parameters.

### Claim 12 (depends on 11)

The method of claim 11, wherein the cryptographic process includes calculating a greatest common divisor of two of the modified one or more pre-calculated values of cryptographic parameters.

### Claim 13 (depends on 11)

The method of claim 11, wherein the cryptographic process is a modular inverse calculation.

### Claim 14 (depends on 13)

The method of claim 13, wherein the modular inverse calculation includes an Extended Euclidean Greatest Common Divisor (XGCD) technique.

### Claim 15 (depends on 14)

The method of claim 14, wherein the XGCD technique includes a secure binary XGCD technique.

### Claim 16 (depends on 11)

The method of claim 11, comprising:
obtaining, at the second processor, one or more further pre-calculated values of cryptographic parameters representing one or more inputs to the modular inverse calculation and having been further modified utilizing a further randomly generated number;
providing the one or more further pre-calculated values of cryptographic parameters to the first processor as a further input of the cryptographic process to initiate performance of the cryptographic process at the first processor; and
receiving the private cryptographic key for one or more of encryption or decryption at least partially responsive to the first processor executing the cryptographic process utilizing the further input one or more further pre-calculated values of cryptographic parameters.
